📍 Article principal de la série : Immich 2026 : guide pratique.
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 |
Ce que change l’environnement 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.
Articles connexes
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é.
Dans la continuité
- 🔝 Retour au guide général : guide pratique Immich 2026
- Documentation Immich : immich.app/docs
Pour appliquer ce tutoriel sur un vrai serveur
Hostinger reste l’option la plus simple pour démarrer. Lien partenaire — votre achat soutient le blog sans surcoût.
Lien d affiliation. Si vous achetez via ce lien, le blog reçoit une petite commission sans surcoût pour vous.
Étape 1 — Choisir le VPS adapté à vos volumes de photos et vidéos
Immich héberge votre photothèque familiale ou pro à la place de Google Photos. Le calibrage du VPS conditionne tout. Pour 50 000 photos et 1 000 vidéos courtes, comptez 200 à 400 Go de stockage, 4 Go RAM minimum, 2 vCPU. Hetzner CX32 (4 vCPU, 8 Go RAM, 80 Go SSD + Volume 250 Go) revient à ~10 EUR/mois (~6 559 FCFA, base 1 EUR = 655,957 FCFA).
Évitez les VPS à 2 EUR : la transcodage vidéo et la reconnaissance faciale ML d’Immich saturent un petit CPU en quelques secondes. Sortie attendue : un VPS Ubuntu 24.04 LTS provisionné, accessible en SSH, avec un Volume monté sur /mnt/photos pour stocker les médias séparément du disque système.
Étape 2 — Installer Coolify, l’alternative open source à Vercel/Heroku
Coolify simplifie le déploiement Docker : interface web, déploiement Git, certificats Let’s Encrypt automatiques, gestion des sauvegardes. Installation en une commande.
# Sur le VPS fraîchement provisionné, en root
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
Le script installe Docker, Docker Compose, Coolify lui-même et configure un reverse proxy Traefik. Sortie attendue : après 3 à 5 minutes, l’URL http://IP_DU_VPS:8000 affiche l’écran d’inscription du premier admin Coolify. Créez le compte tout de suite et activez 2FA.
Étape 3 — Pointer un domaine et activer HTTPS
Sans HTTPS, vos photos personnelles transitent en clair sur les réseaux mobiles africains, ce qui pose un vrai problème de confidentialité. Achetez un domaine (ou un sous-domaine, par exemple photos.monsite.com), pointez un enregistrement A vers l’IP de votre VPS.
# Vérifier que le DNS est propagé depuis le VPS
dig +short photos.monsite.com
# Doit retourner l'IP du VPS
Dans Coolify > Settings > Instance Settings, renseignez le domaine de l’instance (coolify.monsite.com par exemple). Coolify déclenche alors la génération automatique du certificat Let’s Encrypt. Sortie attendue : l’URL HTTPS s’ouvre avec un cadenas vert dans le navigateur.
Étape 4 — Déployer Immich via le template Coolify
Coolify embarque un template Immich officiel maintenu. Cliquez sur Resources > New Resource > Service > Immich. Le template provisionne automatiquement les 4 conteneurs nécessaires : immich-server, immich-machine-learning, postgres-pgvector, redis.
Renseignez le domaine cible (par exemple photos.monsite.com), un mot de passe Postgres robuste (générez-le avec openssl rand -base64 32), et le chemin de stockage upload (/mnt/photos/upload pointant vers votre Volume).
Étape 5 — Premier upload et création du compte admin
Une fois les conteneurs démarrés (vérifiez l’état « Running » de chacun dans Coolify), ouvrez https://photos.monsite.com. La page de premier accès demande de créer le compte administrateur. Choisissez un mot de passe long, activez la 2FA TOTP avec une app comme Aegis ou 2FAS.
# Vérifier les logs si quelque chose coince
docker logs -f immich-server --tail=100
# Recherchez "Listening on port 3001" comme signal de démarrage réussi
Sortie attendue : l’écran d’accueil Immich vide, prêt à recevoir vos photos. Installez ensuite l’app mobile Immich (Android / iOS) et connectez-la à votre URL en https://photos.monsite.com.
Étape 6 — Migrer depuis Google Photos sans perdre les métadonnées
Google Photos exporte via Google Takeout en archives ZIP de 10 à 50 Go selon votre volume. Téléchargez tout sur votre laptop, puis utilisez l’outil immich-go pour pousser vers votre instance en préservant dates, géolocalisation et albums.
# Sur le laptop, après installation de immich-go
immich-go -server=https://photos.monsite.com -key=API_KEY \
upload -google-photos /chemin/vers/Takeout
Pour 50 000 photos sur une fibre 100 Mbps, comptez 4 à 12 heures d’upload selon le débit montant réel. Sortie de référence : Immich affiche progressivement vos albums avec dates correctes et carte du monde peuplée.
Étape 7 — Configurer la sauvegarde hors site
Un VPS unique = un point de défaillance. Configurez un backup chiffré vers un stockage objet (Hetzner Storage Box à 4 EUR/mois pour 1 To, ou Backblaze B2 à 6 USD/To/mois). Outil recommandé : restic avec un cron quotidien.
# Installer restic puis initialiser le dépôt
apt install restic
restic -r sftp:user@u123456.your-storagebox.de:/backups init
# Cron quotidien à 3h du matin
0 3 * * * restic -r sftp:... backup /mnt/photos /var/lib/postgresql
Sortie attendue : chaque matin, un nouveau snapshot incrémental dans la storage box, et un email de log confirmant la réussite. Testez une restauration partielle au moins une fois par trimestre.
Étape 8 — Maintenance courante et bonnes pratiques
Une fois en production, 3 routines suffisent. D’abord mettre à jour Immich tous les 15 jours via Coolify (les releases corrigent souvent des CVE de sécurité), tester l’application après chaque update sur 5 photos. Ensuite surveiller l’espace disque avec une alerte à 80 % (df -h via un cron qui envoie un mail). Enfin auditer les utilisateurs et leurs partages d’albums tous les mois pour éviter des partages oubliés vers d’anciens collègues ou amis.
Si vous voyez votre instance répondre en moins de 1 seconde au chargement initial, vos miniatures s’afficher en moins de 200 ms et la reconnaissance faciale traiter une nouvelle photo en moins de 30 secondes, votre déploiement est réussi.
Pour explorer plus loin, lisez notre guide de sécurisation VPS et notre méthode de déploiement d’application sur VPS.
Étape 9 — Optimiser le ML et la reconnaissance faciale
Immich utilise des modèles de machine learning pour la reconnaissance faciale, la recherche par contenu et la détection d’objets. Sur un VPS sans GPU, le traitement initial d’une bibliothèque de 50 000 photos peut prendre 24 à 72 heures. Pour accélérer, lancez le ML pendant la nuit avec une priorité élevée, et limitez le nombre de threads à 2 ou 3 sur un CX32 pour éviter de saturer le CPU.
Si vous traitez plus de 100 000 photos, envisagez un upgrade vers un VPS Hetzner CCX23 (vCPU dédié AMD EPYC, 4 vCPU, 16 Go RAM, ~28 EUR/mois soit ~18 367 FCFA). Sortie attendue : reconnaissance faciale complète terminée en moins de 36 heures et nouvelles photos indexées en moins de 30 secondes.
Étape 10 — Plan de reprise après sinistre testé
Un backup non testé n’est pas un backup. Une fois par trimestre, simulez la perte du VPS principal : provisionnez un VPS neuf, restaurez le snapshot restic le plus récent, redémarrez la stack Immich via Coolify, vérifiez que vos albums et la galerie sont intacts.
Documentez la procédure de restauration dans un README interne avec captures d’écran. Sortie attendue : une PME peut restaurer son photothèque familiale ou pro en moins de 2 heures en cas de panne majeure du VPS, et la procédure tient sur une page A4.