ITSkillsCenter
Développement Web

Déployer Immich sur Coolify et VPS Hetzner : tutoriel complet 2026

5 min de lecture

📍 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

Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité