Add README with deployment and CSRF fix instructions

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>
This commit is contained in:
BeauTroll
2026-01-06 12:05:24 +01:00
parent d6ec64bffd
commit 31c9dcce09

71
README.md Normal file
View File

@@ -0,0 +1,71 @@
# 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)