Files
agence66-immich/README.md
BeauTroll 0d8d9dcda8 Add Traefik reverse proxy support with automatic SSL
Configure Immich to work with existing Traefik instance:
- Add Traefik labels to immich-server for automatic routing
- Add external traefik network connection
- Disable direct port exposure (use Traefik instead)
- Add DOMAIN variable to .env.example
- Improve .gitignore for generated files and volumes
- Add comprehensive README with deployment instructions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-04 07:20:08 +01:00

245 lines
4.8 KiB
Markdown

# Immich - Serveur de photos auto-hébergé
Déploiement Docker d'Immich configuré pour fonctionner avec Traefik existant.
## Prérequis
- Docker et Docker Compose
- Traefik déjà installé et configuré sur l'host
- Un réseau Docker nommé `traefik` pour Traefik
- Un nom de domaine pointant vers votre serveur
- Au moins 4GB de RAM
- Espace disque suffisant pour vos photos
## Installation
### 1. Cloner ce dépôt
```bash
git clone <url-du-repo>
cd agence66-immich
```
### 2. Vérifier le réseau Traefik
Assurez-vous que votre réseau Traefik existe :
```bash
docker network ls | grep traefik
```
Si le réseau n'existe pas, créez-le :
```bash
docker network create traefik
```
### 3. Configuration
Créer le fichier `.env` :
```bash
cp .env.example .env
```
Modifier le fichier `.env` :
```bash
# Votre domaine
DOMAIN=photos.votredomaine.com
# Base de données - CHANGEZ CE MOT DE PASSE !
DB_PASSWORD=VotreMotDePasseSecurise123!
```
### 4. Créer le répertoire de stockage
```bash
mkdir -p library
```
### 5. Lancer les services
```bash
docker-compose up -d
```
### 6. Vérifier le déploiement
```bash
docker-compose logs -f
```
## Accès
L'application sera accessible sur `https://photos.votredomaine.com`
Le routage et SSL sont gérés par votre Traefik existant.
**Important** : Au premier lancement, créez un compte administrateur.
## Configuration Traefik
### Labels configurés
Le service `immich-server` utilise ces labels Traefik :
- `traefik.enable=true` : Active Traefik pour ce conteneur
- `traefik.http.routers.immich.rule=Host(\`${DOMAIN}\`)` : Règle de routage par domaine
- `traefik.http.routers.immich.entrypoints=websecure` : Utilise l'entrypoint HTTPS
- `traefik.http.routers.immich.tls=true` : Active TLS
- `traefik.http.routers.immich.tls.certresolver=letsencrypt` : Utilise Let's Encrypt
- `traefik.http.services.immich.loadbalancer.server.port=3001` : Port interne du service
### Personnalisation
Si votre Traefik utilise des noms différents, modifiez dans le docker-compose.yml :
- `websecure` : nom de votre entrypoint HTTPS
- `letsencrypt` : nom de votre certresolver
- `traefik` : nom de votre réseau Docker
## Architecture
- **Immich Server** : Application principale (exposée via Traefik)
- **Immich Microservices** : Services de traitement en arrière-plan
- **Immich ML** : Machine Learning pour reconnaissance faciale et objets
- **PostgreSQL** : Base de données avec extension pgvecto-rs
- **Redis** : Cache et gestion des tâches
### Réseaux
- `traefik` (externe) : Réseau partagé avec Traefik pour le reverse proxy
- `immich-internal` : Réseau interne pour la communication entre services
## Gestion
### Arrêter les services
```bash
docker-compose down
```
### Voir les logs
```bash
# Tous les services
docker-compose logs -f
# Un service spécifique
docker-compose logs -f immich-server
```
### Mettre à jour Immich
```bash
docker-compose pull
docker-compose up -d
```
### Redémarrer un service
```bash
docker-compose restart immich-server
```
## Sauvegardes
### Base de données
```bash
docker exec -t immich_postgres pg_dumpall -c -U postgres > backup_$(date +%Y%m%d_%H%M%S).sql
```
### Restaurer une sauvegarde
```bash
cat backup_XXXXXXXX_XXXXXX.sql | docker exec -i immich_postgres psql -U postgres
```
### Sauvegarder les photos
```bash
# Sauvegarde locale
tar -czf immich-library-$(date +%Y%m%d).tar.gz library/
# Ou avec rsync vers un serveur distant
rsync -avz ./library/ user@backup-server:/path/to/backup/
```
### Script de sauvegarde automatique
Créez un cron job pour sauvegardes quotidiennes :
```bash
#!/bin/bash
# /opt/scripts/backup-immich.sh
BACKUP_DIR="/var/backups/immich"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
# Sauvegarde DB
docker exec -t immich_postgres pg_dumpall -c -U postgres > $BACKUP_DIR/db_$DATE.sql
# Garder seulement les 7 dernières sauvegardes
find $BACKUP_DIR -name "db_*.sql" -mtime +7 -delete
```
Ajoutez au crontab :
```bash
crontab -e
# Ajouter : 0 2 * * * /opt/scripts/backup-immich.sh
```
## Dépannage
### Immich n'est pas accessible via Traefik
1. Vérifiez que le conteneur est sur le bon réseau :
```bash
docker inspect immich_server | grep -A 10 Networks
```
2. Vérifiez les logs Traefik pour voir s'il détecte le service
3. Vérifiez que le domaine résout bien vers votre serveur :
```bash
nslookup photos.votredomaine.com
```
### Erreur "network traefik not found"
Créez le réseau :
```bash
docker network create traefik
```
### Erreur de connexion à la base de données
Vérifiez que tous les services sont démarrés :
```bash
docker-compose ps
```
Consultez les logs :
```bash
docker-compose logs database
```
### Performance lente
Vérifiez les ressources :
```bash
docker stats
```
Immich nécessite au minimum 4GB de RAM.
## Support
- Documentation Immich : https://immich.app/docs/
- Issues : Créez une issue sur le dépôt Git