🌙
Skip to main content

Photos : Immich en auto-hébergement

Contexte
#

Après plusieurs années à utiliser Google Photos tout en payant pour le stockage, j’ai décidé de migrer vers une solution auto-hébergée afin de bénéficier d’une alternative plus privée, personnalisable et économique à long terme.

Mon choix s’est porté sur Immich, une application de gestion de photos open-source conçue pour être performante, sécurisée et intuitive.

Elle dispose d’une interface web très aboutie, mais aussi d’une application Android/iOS, ce qui a été un argument déterminant pour moi.

Pourquoi Immich ?
#

  • Performance : L’interface est extrêmement réactive, même avec des bibliothèques de plusieurs milliers de photos.
  • Sauvegarde automatique : L’application mobile sauvegarde mes clichés instantanément (via Wi-Fi ou 4G), permettant une synchronisation transparente au fil de l’eau.
  • Sécurité : L’intégration native avec Authentik permet d’utiliser le SSO et de sécuriser l’accès de manière centralisée.

Migration depuis Google Photos
#

Pour migrer l’ensemble de mes données, j’ai d’abord effectué une demande d’export via Google Takeout. Une fois les archives ZIP récupérées, j’ai extrait les photos et vidéos.

Afin de les importer proprement en conservant les métadonnées (EXIF) et les albums, j’ai utilisé l’outil immich-go. Cet utilitaire permet d’importer massivement les médias dans Immich tout en préservant la géolocalisation et les dates originales.

Pour l’utiliser, vous aurez besoin d’une clé d’API Immich, générable depuis les paramètres utilisateur de l’interface.

D’après mon expérience, bien que l’import puisse être fait par un administrateur, je recommande de passer par l’utilisateur final afin que les photos soient directement attribuées à sa bibliothèque personnelle.

Le processus peut prendre plusieurs heures selon le volume de données à traiter.

Installation d’Immich
#

L’installation s’appuie sur Docker Compose pour orchestrer les différents services nécessaires.

Voici un extrait du fichier docker-compose.yml utilisé :

services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    volumes:
      - ${UPLOAD_LOCATION}:/data
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - "2283:2283" # Port par défaut d'Immich
    depends_on:
      - redis
      - database
    devices:
      - /dev/dri:/dev/dri # Accès au GPU pour le transcodage matériel
    deploy:
      resources:
        limits:
          memory: 2048M

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    volumes:
      - model-cache:/cache

  redis:
    container_name: immich_redis
    image: docker.io/valkey/valkey:9

  database:
    container_name: immich_postgres
    image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0

Si vous souhaitez exposer l’instance sur internet, je recommande le couple Caddy + Cloudflared pour la gestion du SSL et du tunnel sécurisé.

Intégration avec Authentik
#

Pour sécuriser l’accès, j’ai intégré Authentik via le protocole OIDC (OpenID Connect).

Dans l’interface d’Authentik, j’ai créé un fournisseur (Provider) SSO et configuré les flux d’authentification pour inclure le MFA (Double authentification).

Une fois le client_id et le client_secret obtenus, la configuration dans Immich est triviale. Cela permet de centraliser la gestion des utilisateurs et d’ajouter une couche de sécurité robuste devant l’application.

Configuration de Caddy
#

Caddy fait office de reverse proxy. Bien que la configuration soit classique, quelques ajustements sur les en-têtes et les limites de taille de fichiers peuvent être nécessaires pour garantir un upload fluide des médias volumineux.

Retour d’expérience
#

Après avoir stabilisé la chaîne Cloudflare > Caddy > Authentik > Immich, la migration est une réussite totale.

L’interface d’Immich est très proche de celle de Google Photos, ce qui rend la transition naturelle pour les utilisateurs. La rapidité d’exécution est bluffante, même sur du matériel grand public.

Aperçu de l’interface :

Interface d’Immich

Point d’attention : Cloudflare et les vidéos
#

Il est important de noter que Cloudflare (en version gratuite) peut poser des problèmes avec le streaming de vidéos volumineuses. Dans ce cas, passer par un VPN (comme Wireguard ou Tailscale) ou une connexion directe peut être préférable pour sauvegarder ses vidéos sans restrictions.

Conclusion
#

Immich est sans doute l’une des meilleures alternatives auto-hébergées à Google Photos. Sa réactivité, sa gestion des sauvegardes mobiles et son intégration SSO en font une solution de choix pour quiconque souhaite reprendre le contrôle sur ses souvenirs numériques.

Le ticket d’entrée technique est un peu plus élevé, mais le gain en souveraineté et en performances en vaut largement l’investissement.