Tropic Host

Immich sur un VPS : installer son propre cloud pour photos et vidéos

7 min de lecture
Tropic
Immich sur un VPS : installer son propre cloud pour photos et vidéos

Immich : installer son propre cloud pour photos et vidéos sur un VPS

Immich est un service auto-hébergé conçu pour stocker et téléverser automatiquement des photos et des vidéos. Il propose des applications mobiles, une interface web, des albums, une recherche intelligente et la reconnaissance faciale, tout en conservant la photothèque sur le serveur de votre choix.

Nous allons voir les prérequis d'Immich, son installation sous Ubuntu avec Docker Compose, la configuration de HTTPS, la connexion du téléphone et la mise en place d'une sauvegarde externe.

Installer Immich en six étapes

  1. Créer un VPS Linux disposant de suffisamment de RAM et d'espace disque.
  2. Faire pointer un sous-domaine, par exemple photos.example.com, vers l'adresse IP du serveur.
  3. Installer Docker et télécharger la configuration officielle d'Immich.
  4. Indiquer les chemins de la médiathèque et de la base de données, puis démarrer les conteneurs.
  5. Fermer le port interne vers l'extérieur et activer HTTPS.
  6. Installer l'application mobile et configurer une sauvegarde externe.

Qu'est-ce qu'Immich ?

Immich est une application open source permettant de gérer soi-même une photothèque et une vidéothèque. Les images apparaissent sur une frise chronologique, peuvent être regroupées dans des albums, retrouvées par la recherche et envoyées automatiquement du téléphone vers le serveur.

La principale différence avec un service photo classique dans le cloud réside dans le contrôle de la partie serveur. Les fichiers sont stockés sur votre VPS ou votre serveur domestique, mais vous devez vous-même gérer l'espace disponible, les mises à jour, la sécurité et les sauvegardes.

ParamètreService photo dans le cloudImmich
Emplacement des fichiersChez le fournisseurSur votre serveur
MaintenanceAssurée par le fournisseurAssurée par le propriétaire
CoûtsAbonnement selon le volumeVPS, disque et sauvegardes

Immich ne constitue pas à lui seul une sauvegarde. Si les photos n'existent que sur un seul VPS, une panne de disque ou une suppression accidentelle peut toujours détruire l'archive.

Principales fonctionnalités d'Immich

  • Téléversement automatique. Les applications Android et iOS envoient les photos et vidéos des albums sélectionnés. Le Wi-Fi est utilisé par défaut et les fichiers déjà présents sont ignorés grâce à leur somme de contrôle.
  • Recherche intelligente. Le service permet de rechercher par personne, lieu, date, appareil photo, texte présent dans l'image ou description du contenu. Les visages sont regroupés, puis peuvent recevoir un nom.
  • Albums et partage. Immich prend en charge plusieurs utilisateurs, les albums partagés, le partage avec un partenaire et les liens publics protégés par mot de passe et assortis d'une date d'expiration.
  • Carte et métadonnées. Immich lit les données EXIF, affiche le lieu de prise de vue, crée des souvenirs et prend en charge les favoris, les archives et les bibliothèques externes.

L'apprentissage automatique sollicite particulièrement le CPU et la RAM lors du premier import. Une fois les miniatures et les index générés, la charge quotidienne devient généralement plus faible.

Configuration serveur requise pour Immich

Les prérequis officiels des versions actuelles sont les suivants :

  • un système Linux ou de type Unix en 64 bits ;
  • au moins 2 cœurs CPU, 4 étant recommandés ;
  • au moins 6 Go de RAM, 8 Go étant recommandés ;
  • Docker Engine avec le plugin docker compose ;
  • un SSD local pour la base de données PostgreSQL ;
  • de l'espace pour les fichiers originaux, les miniatures et les vidéos transcodées.

Immich peut fonctionner sur un serveur doté de 4 Go de RAM si les fonctions d'apprentissage automatique sont désactivées. Pour la reconnaissance faciale et la recherche intelligente, mieux vaut choisir 8 Go dès le départ.

Les miniatures et les fichiers transcodés ajoutent en moyenne 10 à 20 % au volume de la médiathèque. Pour une archive de 200 Go, prévoyez au moins 240 à 260 Go. Le répertoire de base de données DB_DATA_LOCATION doit se trouver sur un SSD local et non sur un disque réseau.

Une configuration de départ pratique comprend 4 vCPU, 8 Go de RAM, Ubuntu 24.04 LTS et un SSD offrant 20 à 30 % de capacité supplémentaire par rapport à la bibliothèque d'origine. Une carte graphique dédiée n'est pas obligatoire, mais elle peut accélérer le traitement d'une archive volumineuse.

Comment installer Immich sur un VPS

L'exemple utilise Ubuntu 24.04 et le sous-domaine photos.example.com.

1. Configurer le DNS et préparer Ubuntu

Créez un enregistrement DNS A pointant vers l'adresse IPv4 du VPS. Connectez-vous ensuite en SSH :

ssh root@SERVER_IP
apt update && apt upgrade -y

ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Ne fermez pas la session SSH actuelle avant d'avoir vérifié qu'une nouvelle connexion fonctionne.

2. Installer Docker et Docker Compose

apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt update
apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin
docker compose version

Il faut utiliser précisément la commande docker compose : l'ancienne commande docker-compose n'est plus prise en charge par le projet.

3. Télécharger et configurer Immich

mkdir -p /opt/immich /srv/immich-data
cd /opt/immich

curl -L -o docker-compose.yml \
  https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
curl -L -o .env \
  https://github.com/immich-app/immich/releases/latest/download/example.env

Ouvrez le fichier :

nano /opt/immich/.env

Modifiez les principaux paramètres :

UPLOAD_LOCATION=/srv/immich-data
DB_DATA_LOCATION=/opt/immich/postgres
TZ=Europe/Berlin
DB_PASSWORD=REPLACE_WITH_A_LONG_PASSWORD

Indiquez votre propre fuseau horaire. Le mot de passe PostgreSQL doit être composé de lettres latines et de chiffres ; la commande openssl rand -hex 24 permet de générer une valeur aléatoire. Laissez les autres lignes telles qu'elles figurent dans la version actuelle de example.env.

4. Fermer le port interne et démarrer les conteneurs

Dans docker-compose.yml, recherchez le port du service immich-server :

ports:
  - '2283:2283'

Remplacez-le par :

ports:
  - '127.0.0.1:2283:2283'

Le port n'est désormais accessible que depuis le VPS lui-même. Démarrez le service :

cd /opt/immich
docker compose up -d
docker compose ps

Pour le diagnostic, utilisez docker compose logs --tail=200.

5. Activer HTTPS avec Caddy

apt install -y caddy

cat > /etc/caddy/Caddyfile <<'EOF'
photos.example.com {
    reverse_proxy 127.0.0.1:2283
}
EOF

caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy

Caddy demandera automatiquement un certificat si le DNS pointe vers le VPS et si les ports 80 et 443 sont accessibles. Immich doit fonctionner à la racine d'un domaine ou d'un sous-domaine ; une adresse telle que example.com/immich n'est pas prise en charge.

6. Créer l'administrateur et connecter le téléphone

Ouvrez https://photos.example.com. Le premier utilisateur inscrit devient administrateur et peut créer d'autres comptes.

Installez Immich depuis l'App Store ou Google Play. Sur l'écran de connexion, indiquez l'adresse sans /api :

https://photos.example.com

Sélectionnez les albums et activez la sauvegarde. Le premier import peut prendre du temps : le serveur génère les miniatures, reconnaît les visages, indexe la recherche et traite les vidéos.

Mettre Immich à jour

Avant une mise à jour, consultez les notes de version, en particulier lors du passage à une nouvelle version majeure :

cd /opt/immich
docker compose pull
docker compose up -d
docker image prune

Mettez d'abord à jour les applications mobiles, puis le serveur. Le retour de la base de données vers une version antérieure peut ne pas être pris en charge sans procédure spécifique.

Sauvegarder Immich

Immich crée automatiquement des dumps PostgreSQL, mais ceux-ci ne contiennent que la base de données et les métadonnées, pas les photos ni les vidéos. Pour une restauration complète, sauvegardez :

  • l'intégralité du répertoire /srv/immich-data ;
  • /opt/immich/.env et docker-compose.yml ;
  • la configuration de Caddy.

Une copie conservée sur le même VPS ne protège ni contre une panne de disque ni contre la suppression du serveur. Envoyez les données vers un autre serveur, un NAS ou un stockage objet, et respectez la règle de sauvegarde 3-2-1. Testez régulièrement une restauration au lieu de vous contenter de vérifier la présence des fichiers de sauvegarde.

Quel VPS choisir pour Immich ?

Pour profiter pleinement de la reconnaissance faciale et de la recherche intelligente, il est raisonnable de choisir un VPS doté d'au moins 4 vCPU et 8 Go de RAM. Calculez la taille du disque en fonction de la médiathèque, tout en prévoyant une marge pour les miniatures, les vidéos et la croissance de l'archive.

Un VPS Linux de tropic.host avec une adresse IP fixe et un stockage SSD convient à cet usage. Vous pouvez commencer avec une configuration de 8 Go de RAM, puis augmenter les ressources à mesure que la bibliothèque grandit. Conservez la base PostgreSQL sur un disque local rapide et la sauvegarde en dehors de ce VPS.

Un VPS facilite l'accès permanent depuis n'importe quel réseau. Pour une archive de plusieurs téraoctets, un serveur domestique peut coûter moins cher, mais il faudra assurer vous-même l'alimentation, l'accès extérieur et la redondance.

Limites d'Immich

L'auto-hébergement ne garantit pas la fiabilité. Un mot de passe faible, un port 2283 exposé, des conteneurs obsolètes ou l'absence de sauvegarde externe créent un risque de perte de données.

Immich n'est pas non plus une copie exacte de Google Photos ou d'iCloud : les fonctions d'édition et de synchronisation en arrière-plan diffèrent, tandis que la vitesse d'analyse dépend du matériel. Avant de déplacer votre unique archive, testez le service avec une petite bibliothèque.

Conclusion

Immich permet de créer sa propre galerie photo avec téléversement mobile, albums, reconnaissance faciale, recherche et partage. Pour la version actuelle, mieux vaut prévoir un VPS Linux avec 4 cœurs, 8 Go de RAM et un SSD offrant au moins 20 à 30 % de capacité supplémentaire.

Après l'installation, configurez HTTPS, les mises à jour et une sauvegarde externe du répertoire multimédia avec la base de données. C'est la sauvegarde, et non le simple fait d'auto-héberger le service, qui protège les photos contre la perte.

FAQ

Immich est-il gratuit ?

Le serveur Immich est distribué en open source et peut fonctionner sans abonnement obligatoire. Le VPS, le domaine, l'espace disque et les sauvegardes restent payants.

De combien de RAM Immich a-t-il besoin ?

Le minimum officiel est de 6 Go de RAM et le volume recommandé est de 8 Go. Avec 4 Go, il faudra désactiver l'apprentissage automatique.

Peut-on installer Immich sans nom de domaine ?

Techniquement, oui, mais pour un accès permanent depuis un téléphone, il est préférable d'utiliser un domaine et HTTPS. Cela protège l'authentification et le transfert des fichiers.

Immich remplace-t-il une sauvegarde des photos ?

Non. Copiez séparément la médiathèque et la base de données vers un autre appareil ou un autre emplacement.

Peut-on migrer une photothèque existante ?

Oui. Les fichiers peuvent être téléversés depuis l'interface web ou la CLI, ou un répertoire peut être connecté comme bibliothèque externe. Avant un import massif, créez une copie des données sources.