Immich est une photothèque libre, pour vos photos et vos vidéos, que vous hébergez vous-même. Elle ressemble beaucoup à Google Photos : l'application mobile sauvegarde la pellicule, les visages sont regroupés par personne, et vous retrouvez une photo en décrivant ce qu'elle montre. La différence tient à l'endroit où dorment les fichiers.
Google offre 15 Go, partagés entre Photos, Gmail et Drive. Au-delà, vous payez Google chaque mois et la photothèque reste sur ses serveurs. Avec Immich sur un VPS à Montréal, elle est sur une machine que vous administrez, au Canada. Notre catalogue propose une image Immich prête à déployer : cet article couvre cette voie, l'installation à la main, le choix de l'offre, les sauvegardes et les mises à jour.
1. Ce que fait Immich
L'application mobile envoie les nouvelles photos et vidéos en arrière-plan et garde les originaux intacts. Sur le serveur, Immich construit une frise chronologique, une carte à partir des données GPS et des souvenirs des années passées. Son apprentissage automatique regroupe les visages par personne et indexe le contenu de chaque image : une recherche « voiture rouge » ou « plage au coucher du soleil » fonctionne sans aucun mot-clé posé à la main. Les albums se partagent avec les autres comptes de votre serveur ou par un lien public.
Immich est gratuit et sort souvent de nouvelles versions, mais il reste un logiciel que vous faites tourner vous-même : mises à jour, espace disque et sauvegardes sont à votre charge. Chaque point est traité plus bas.
2. Quelle offre choisir
Immich demande au minimum 6 Go de mémoire et en recommande 8, avec 2 à 4 cœurs. Sa documentation précise qu'une machine de 4 Go le fait tourner si l'apprentissage automatique est désactivé. D'où la fourchette :
| Offre | Ressources | Pour Immich | Place pour les photos | Par mois |
|---|---|---|---|---|
| Starter | 2 vCPU · 4 Go · 40 Go | petite photothèque, apprentissage automatique coupé | environ 25 Go | 16 CAD |
| Pro | 4 vCPU · 8 Go · 80 Go | la configuration recommandée par Immich | environ 60 Go | 30 CAD |
| Scale | 8 vCPU · 16 Go · 160 Go | photothèque familiale, indexation plus rapide | environ 130 Go | 56 CAD |
La dernière colonne est une estimation : le système et les conteneurs d'Immich prennent une dizaine de gigaoctets, et la documentation d'Immich compte 10 à 20 % de plus que les originaux pour les vignettes et les vidéos converties. La Nano (2 Go) est trop petite, et la console ne propose pas l'image Immich sur cette offre.
Pour un premier essai, la facturation à l'heure convient bien : déployez, envoyez quelques centaines de photos depuis votre téléphone, testez la recherche et les visages, puis détruisez la machine ou gardez-la.
3. Installer avec notre image Immich
Commandez une Starter ou plus avec l'image Immich. Ce lien ouvre la console avec l'image déjà choisie :
https://console.ffxf.net/servers/order-vm?image=immich
L'image est une Ubuntu 24.04 avec Docker. Au premier démarrage, elle lance Immich (le
serveur, le service d'apprentissage automatique, PostgreSQL et Valkey) derrière Caddy,
qui s'occupe du HTTPS. Chaque VM a son propre nom de domaine ; quand ce nom pointe vers
la machine, Caddy obtient un certificat Let's Encrypt et Immich répond sur
https://domaine-de-votre-vm. Sinon, Immich répond en HTTP simple sur
l'IPv4 de la machine. Le mot de passe de la base est généré à ce premier démarrage et
rangé dans /opt/immich/.env, lisible par root seulement.
Ouvrez l'adresse et créez le compte administrateur tout de suite : le premier compte créé sur un serveur Immich en devient l'administrateur.
L'utilisateur SSH est ubuntu. Tout se trouve dans /opt/immich :
compose.yml, .env et Caddyfile. Pour utiliser
votre propre domaine, faites pointer ses enregistrements A et AAAA vers la machine,
remplacez le nom de la VM par le vôtre sur les deux lignes du Caddyfile,
puis redémarrez Caddy :
sudo nano /opt/immich/Caddyfile
sudo docker compose -f /opt/immich/compose.yml restart caddy
4. Installer à la main, sur n'importe quel VPS
Si vous préférez tout monter vous-même, ou faire tourner Immich à côté d'autres services, partez d'une image Ubuntu ou Debian avec Docker Engine et son greffon Compose (voir Docker sur un VPS). Voici les commandes de la documentation d'Immich :
mkdir ./immich-app
cd ./immich-app
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
Dans .env, remplacez DB_PASSWORD par une valeur aléatoire faite
uniquement de lettres et de chiffres (openssl rand -hex 16 en donne une),
décommentez TZ et mettez America/Toronto, et laissez
IMMICH_VERSION=v3. Puis démarrez :
docker compose up -d
Immich écoute sur le port 2283, en HTTP simple. Placez devant lui un mandataire inverse en HTTPS (notre guide Nginx et HTTPS couvre le certificat) et gardez les réglages qu'Immich recommande pour les gros envois :
client_max_body_size 50000M;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
send_timeout 600s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
Fermez ensuite le port 2283 vers l'extérieur, par exemple avec un pare-feu cloud.
5. L'application mobile
L'application Immich est sur l'App Store, Google Play et F-Droid. Saisissez l'adresse HTTPS de votre serveur, connectez-vous, ouvrez l'écran de sauvegarde et choisissez les albums à envoyer. Sur Android, la sauvegarde en arrière-plan se fait seule. Sur iPhone, elle dépend du moment où iOS laisse l'application tourner : l'ouvrir de temps en temps lui permet de rattraper son retard.
Après le premier gros envoi, Immich génère les vignettes, détecte les visages et indexe chaque photo. Sans carte graphique, comptez un bon moment pour des milliers d'images : la progression se suit dans l'administration, page des tâches (Job Queues). La recherche et les personnes se complètent à mesure que les tâches avancent.
6. Les sauvegardes
Deux choses comptent : les fichiers originaux et la base de données. Immich exporte sa
base chaque jour à 2 h et garde les 14 derniers exports, dans un dossier
backups à côté des photos. Les dossiers à garder sont library,
upload, profile et backups ;
thumbs et encoded-video se régénèrent.
Avec notre image, tout est dans un seul volume Docker :
/var/lib/docker/volumes/immich_upload_data/_data. Avec une installation à
la main, c'est votre UPLOAD_LOCATION.
Immich recommande la règle 3-2-1 : trois copies, sur deux types de support, dont une ailleurs. Chez FFxF, la machine est la première copie. Les sauvegardes de machine dans la console sont la deuxième (7 sauvegardes manuelles incluses, les sauvegardes automatiques coûtent 3 CAD par mois). Pour la troisième, copiez la photothèque à l'extérieur, vers un NAS à la maison par exemple :
sudo rsync -a --delete --exclude thumbs --exclude encoded-video \
/var/lib/docker/volumes/immich_upload_data/_data/ vous@nas-maison:/backups/immich/
La documentation d'Immich conseille aussi de sauvegarder la base avant les fichiers, ou d'arrêter le serveur pendant la copie, pour que les deux concordent. L'export du jour se trouve déjà dans le dossier copié : pour restaurer, remettez les fichiers en place et chargez le dernier export, comme l'explique le guide de sauvegarde d'Immich.
7. Les mises à jour
Immich publie souvent (la 3.3.0 est sortie le 7 octobre, la 3.3.1 le lendemain), et des versions majeures ont déjà modifié la base et la configuration. Lisez les notes de version avant chaque mise à jour, et faites d'abord une sauvegarde de la machine dans la console.
Notre image suit l'étiquette release d'Immich : une mise à jour prend la
dernière version, qui peut être une nouvelle majeure.
cd /opt/immich
sudo docker compose pull
sudo docker compose up -d
Pour rester sur la version 3 jusqu'à ce que vous en décidiez autrement, remplacez
d'abord :release par :v3 dans compose.yml. Avec
une installation à la main, IMMICH_VERSION=v3 dans .env fait la
même chose, et la mise à jour reste un pull suivi d'un up -d.
8. Les limites
Le disque d'abord. Notre plus grande offre a 160 Go, de quoi loger une photothèque familiale d'environ 130 Go de photos et de vidéos. Une archive de plusieurs téraoctets a sa place sur un serveur à la maison ou un espace de stockage dédié, pas sur ces offres.
L'apprentissage automatique tourne sur le processeur : la première indexation d'une grosse photothèque est lente. Les fichiers sont stockés tels quels sur le disque du serveur, sans chiffrement au repos. Et l'administrateur, c'est vous : tenez aussi Ubuntu à jour (notre guide pour sécuriser Ubuntu liste l'essentiel).
Les autres images du catalogue, avec leur utilisateur par défaut, sont sur la page Images.