Remove responseHeaderTimeout and idleConnTimeout labels that are not supported at the loadbalancer level in Traefik, causing "field not found" errors. These timeout configurations must be set at the entrypoint level instead. Keep essential labels for WebSocket/SSE support. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
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é
traefikpour 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
git clone <url-du-repo>
cd agence66-immich
2. Vérifier le réseau Traefik
Assurez-vous que votre réseau Traefik existe :
docker network ls | grep traefik
Si le réseau n'existe pas, créez-le :
docker network create traefik
3. Configuration
Créer le fichier .env :
cp .env.example .env
Modifier le fichier .env :
# 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
mkdir -p library
5. Lancer les services
docker-compose up -d
6. Vérifier le déploiement
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 conteneurtraefik.http.routers.immich.rule=Host(\${DOMAIN}`)` : Règle de routage par domainetraefik.http.routers.immich.entrypoints=websecure: Utilise l'entrypoint HTTPStraefik.http.routers.immich.tls=true: Active TLStraefik.http.routers.immich.tls.certresolver=letsencrypt: Utilise Let's Encrypttraefik.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 HTTPSletsencrypt: nom de votre certresolvertraefik: 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 proxyimmich-internal: Réseau interne pour la communication entre services
Gestion
Arrêter les services
docker-compose down
Voir les logs
# Tous les services
docker-compose logs -f
# Un service spécifique
docker-compose logs -f immich-server
Mettre à jour Immich
docker-compose pull
docker-compose up -d
Redémarrer un service
docker-compose restart immich-server
Sauvegardes
Base de données
docker exec -t immich_postgres pg_dumpall -c -U postgres > backup_$(date +%Y%m%d_%H%M%S).sql
Restaurer une sauvegarde
cat backup_XXXXXXXX_XXXXXX.sql | docker exec -i immich_postgres psql -U postgres
Sauvegarder les photos
# 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 :
#!/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 :
crontab -e
# Ajouter : 0 2 * * * /opt/scripts/backup-immich.sh
Dépannage
Immich n'est pas accessible via Traefik
- Vérifiez que le conteneur est sur le bon réseau :
docker inspect immich_server | grep -A 10 Networks
-
Vérifiez les logs Traefik pour voir s'il détecte le service
-
Vérifiez que le domaine résout bien vers votre serveur :
nslookup photos.votredomaine.com
Erreur "network traefik not found"
Créez le réseau :
docker network create traefik
Erreur de connexion à la base de données
Vérifiez que tous les services sont démarrés :
docker-compose ps
Consultez les logs :
docker-compose logs database
Performance lente
Vérifiez les ressources :
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