📍 Article principal du cluster : Immich 2026 : guide complet.
Trente minutes pour transformer un VPS vide en serveur photo familial moderne, avec HTTPS, ML local, app mobile prête à uploader. Cette procédure est validée chez plusieurs familles à Casablanca, Dakar, Tunis, et chez quelques studios photo professionnels au Sénégal et au Mali.
Prérequis
- VPS Hetzner CX42 minimum (4 vCPU, 16 Go RAM, 80 Go NVMe).
- Coolify v4 installé (voir Guide Coolify).
- Hetzner Storage Box 1-5 To recommandé (3,20-12 €/mois).
- Nom de domaine (par exemple
photos.votre-famille.com). - Niveau attendu : intermédiaire.
- Temps estimé : 30 à 60 minutes incluant indexation initiale.
Étape 1 — Préparer le DNS
dig +short photos.votre-famille.com
# Doit retourner l'IP du VPS Hetzner
Si Cloudflare est devant, désactiver le proxy (orange → gris) le temps de l’émission Let’s Encrypt.
Étape 2 — Monter le Storage Box en NFS
Hetzner Storage Box exige une activation NFS (Settings → Sub-accounts → Enable NFS) :
apt install -y nfs-common
mkdir -p /mnt/photos
mount -t nfs -o vers=4 u123456.your-storagebox.de:/home /mnt/photos
echo "u123456.your-storagebox.de:/home /mnt/photos nfs vers=4,_netdev,auto 0 0" >> /etc/fstab
Test : echo test > /mnt/photos/test.txt && cat /mnt/photos/test.txt && rm /mnt/photos/test.txt.
Étape 3 — Créer le service Immich dans Coolify
Resources → + New → Service → rechercher « Immich ». Coolify déploie le template officiel (compose v1.108 au moment de l’écriture). Nom : immich-prod. Server : votre Hetzner CX42. Project : Famille (ou Production).
Étape 4 — Configurer les variables d’environnement
UPLOAD_LOCATION=/mnt/photos/immich-upload
DB_PASSWORD=générez-un-mot-de-passe-de-32-caractères
DB_USERNAME=immich
DB_DATABASE_NAME=immich
TZ=Africa/Casablanca
IMMICH_VERSION=release
LOG_LEVEL=warn
Le mapping UPLOAD_LOCATION sur le NFS Storage Box est crucial : sans cela, vos photos remplissent le SSD du VPS et plantent au-delà de 60 Go.
Étape 5 — Configurer le domaine HTTPS
Onglet Domains : https://photos.votre-famille.com. Coolify émet automatiquement le certificat Let’s Encrypt via Traefik. Activer Force HTTPS.
Étape 6 — Lancer le déploiement
Cliquer Deploy. Logs en temps réel : pulling 5 images Docker (immich-server, machine-learning, postgres, redis, typesense), création des volumes, attente santé. Comptez 3 à 5 minutes.
Étape 7 — Premier compte administrateur
Ouvrir https://photos.votre-famille.com. L’écran d’inscription propose la création du premier compte admin (qui aura les droits sur tous les utilisateurs futurs). Saisir email, nom, mot de passe robuste 14+ caractères. Le second utilisateur ne peut pas s’inscrire seul, seul l’admin peut l’inviter.
Étape 8 — Configurer le Machine Learning
Settings → Machine Learning → activer :
- Smart Search (CLIP) : recherche par texte (« voiture », « plage », « mariage »).
- Face Recognition : identification des personnes.
- Duplicate Detection : détection des doublons.
Pour CX42, choisir le modèle CLIP léger : ViT-B-32__openai. Pour CCX23, modèle plus précis ViT-L-14__openai possible.
Étape 9 — Inviter les autres membres de la famille
Settings → Users → Add User → email + nom + mot de passe initial (changement obligatoire au premier login). Chaque membre obtient son espace personnel + accès aux albums partagés que vous créez.
Étape 10 — Test de premier upload
Upload de 10 photos via le web vault. Attendre 30 secondes. Constater :
- Vignettes générées (timeline visible).
- Métadonnées EXIF extraites (date, lieu si GPS).
- Smart Search : taper « ciel bleu » retourne les photos pertinentes.
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
| Container ML reboot loop | RAM insuffisante | Passer à CCX23 ou désactiver modèles lourds |
| NFS lent | Storage Box non activé | Activer NFS dans Hetzner panel |
| Vignettes manquantes | Worker bloqué | Job Status → Restart workers |
| HTTPS redirect loop | Cloudflare en mode Flexible | Mode Full ou Full Strict |
| Inscription d’admin demande encore après création | Cookie session | Mode incognito + retenter |
| Disk plein | UPLOAD_LOCATION sur SSD VPS | Modifier vers /mnt/photos + redéployer |
Adaptation au contexte ouest-africain
Trois points concrets. Choix Storage Box vs S3 : Hetzner Storage Box (NFS) à 3,20 €/To/mois est plus pratique qu’un bucket S3-compatible pour Immich, qui veut un montage fichier classique. Backup vers Backblaze B2 vient en deuxième ligne. Quotas par utilisateur : Settings → Users → définir un quota de 100 Go/personne pour éviter qu’un seul utilisateur sature 5 To. Liens publics avec mot de passe : pour partager un album mariage avec la famille au Sénégal, Mali, Côte d’Ivoire sans qu’ils créent un compte, lien public 30 jours + mot de passe simple.
Tutoriels frères du cluster
FAQ
Quelle taille de Storage Box pour 5 ans de photos famille ? Une famille de 4 personnes prend ~50 Go/an de photos en qualité originale. 1 To suffit 15-20 ans, 5 To pour archive complète + RAW.
Performance ML sur Hetzner CX42 ? Indexation CLIP de 10 000 photos en 2-3 heures. Indexation incrémentale ensuite quasi-instantanée.
Comment migrer plus tard vers serveur plus puissant ? Snapshot Hetzner du VPS, restore sur CCX23, mise à jour DNS. Storage Box reste accessible inchangé.
NFS sécurisé ? NFS sur réseau Hetzner privé est OK. Pour paranos, monter via Tailscale et restreindre le Storage Box à votre IP statique.
Backup automatique avant production ? Cron quotidien pg_dump + rclone vers B2. Voir tutoriel dédié.
Pour aller plus loin
- 🔝 Retour au pilier : Guide complet Immich 2026
- Documentation Immich : immich.app/docs