Document initial setup steps and provide detailed instructions for fixing CSRF verification errors in Seafile v11+ when running behind Traefik reverse proxy. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
72 lines
1.9 KiB
Markdown
72 lines
1.9 KiB
Markdown
# Seafile Deployment
|
|
|
|
Configuration Docker pour déployer Seafile avec Traefik comme reverse proxy.
|
|
|
|
## Configuration initiale
|
|
|
|
1. Copiez `.env.example` vers `.env` et configurez les variables :
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
2. Modifiez les variables dans `.env` :
|
|
- `SEAFILE_SERVER_HOSTNAME` : votre nom de domaine
|
|
- `SEAFILE_ADMIN_EMAIL` : email administrateur
|
|
- `SEAFILE_ADMIN_PASSWORD` : mot de passe administrateur
|
|
- Les mots de passe de base de données
|
|
|
|
3. Démarrez les services :
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
|
|
## Fix CSRF (Seafile v11+)
|
|
|
|
Après la mise à jour vers Seafile v11, Django a renforcé les vérifications CSRF. Si vous obtenez l'erreur :
|
|
```
|
|
Interdit (403)
|
|
La vérification CSRF a échoué. La requête a été interrompue.
|
|
```
|
|
|
|
Vous devez ajouter votre domaine aux origines de confiance CSRF :
|
|
|
|
1. Accédez au conteneur Seafile :
|
|
```bash
|
|
docker exec -it seafile bash
|
|
```
|
|
|
|
2. Éditez le fichier de configuration :
|
|
```bash
|
|
nano /opt/seafile/conf/seahub_settings.py
|
|
```
|
|
|
|
3. Ajoutez à la fin du fichier (remplacez par votre domaine réel) :
|
|
```python
|
|
CSRF_TRUSTED_ORIGINS = ["https://votre-domaine.com"]
|
|
```
|
|
|
|
4. Sauvegardez (Ctrl+O, Entrée, Ctrl+X) et sortez du conteneur :
|
|
```bash
|
|
exit
|
|
```
|
|
|
|
5. Redémarrez Seafile :
|
|
```bash
|
|
docker-compose restart seafile
|
|
```
|
|
|
|
**Note :** Cette configuration est persistante car le fichier `seahub_settings.py` est stocké dans le volume `/opt/seafile-data` qui est monté sur l'hôte.
|
|
|
|
## Structure
|
|
|
|
- `docker-compose.yml` : Configuration des services (Seafile, MariaDB, Memcached)
|
|
- `.env` : Variables d'environnement (non versionné)
|
|
- `.env.example` : Exemple de configuration
|
|
|
|
## Services
|
|
|
|
- **seafile** : Serveur Seafile (port 80 interne, exposé via Traefik)
|
|
- **db** : Base de données MariaDB
|
|
- **memcached** : Cache en mémoire
|
|
- **traefik** : Reverse proxy (réseau externe)
|