# 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 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