BeauTroll 7be758e8f8 Add retry expression to buffering middleware for SSE compatibility
Configure buffering middleware to retry only on network errors, preventing interference with Server-Sent Events (SSE) used by sync streams.

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-05 06:14:33 +01:00

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

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

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

  1. Vérifiez que le conteneur est sur le bon réseau :
docker inspect immich_server | grep -A 10 Networks
  1. Vérifiez les logs Traefik pour voir s'il détecte le service

  2. 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

Description
No description provided
Readme 47 KiB