Files
docudjeex/content/fr/3.serveex/6.cloud/1.immich.md
T

7.9 KiB

title, description
title description
Immich Installer Immich, une alternative auto-hébergée à Google Photos et iCloud avec reconnaissance faciale, géolocalisation et synchronisation multi-appareils.

:ellipsis{left=0px width=40rem top=10rem blur=140px zIndex=60}

Immich est une solution auto-hébergée de gestion de photos et de vidéos qui remplace les services cloud comme Google Photos ou iCloud. Elle propose des fonctions puissantes comme la reconnaissance faciale et la géolocalisation.

Picture

Installation

::file-tree

tree: /: - srv: - docker: - immich: - library/ - compose.yaml - .env

::

::steps{level="3"}

Déployer la stack

Ouvrez Dockge, cliquez sur compose, nommez la stack immich, puis copiez-collez le dernier docker-compose.yml publié ici.

::warning

Attention : n'ajoutez pas le label Watchtower à la stack Immich. Immich évolue rapidement, et les mises à jour automatiques peuvent casser votre installation. ::

Renseigner vos variables d'environnement

Configurez le fichier .env en copiant la dernière version depuis ici et suivez les commentaires du fichier.

::note{to="/general/networking/samba/"}

Si vous utilisez un NAS ou un disque partagé sur le réseau via Samba pour stocker vos données, remplacez la valeur de UPLOAD_LOCATION{lang=properties} par le chemin de votre dossier partagé. ::

::tip{icon=""} Astuce : si votre CPU/iGPU/GPU le permet, Immich peut utiliser l'accélération matérielle pour la lecture vidéo et la reconnaissance d'images. Cela peut tripler les performances. En savoir plus sur le transcodage et le machine learning. ::

Déployez le conteneur. Vous pouvez vous connecter et suivre les instructions de configuration sur http://ipdevotreserveur:2283.

Terminé !

::

Exposer Immich avec SWAG

Le principal intérêt de cette installation est de pouvoir accéder à Immich à distance sur tous vos appareils. Nous allons exposer Immich avec SWAG.

::note{icon=""} 📋 Au préalable :

Nous partons du principe que vous avez un sous-domaine immich.mondomaine.fr avec un CNAME pointant vers mondomaine.fr dans votre zone DNS. Par ailleurs, à moins d'utiliser Cloudflare Zero Trust, assurez-vous que le port 443 de votre box est redirigé vers le port 443 de votre serveur via les règles NAT. ::

::steps{level="3"}

Ajouter le réseau d'Immich à SWAG

Dans Dockge, ouvrez la stack SWAG et modifiez le fichier compose pour y ajouter le réseau d'Immich :

---
services:
  swag:
     container_name: # ...
      # ... 
     networks:            # Rattache le conteneur au réseau personnalisé 
      # ...           
      - immich            # Nom du réseau défini dans la stack

networks:                 # Définit le réseau personnalisé
  # ...
  immich:                 # Nom du réseau défini dans la stack
    name: immich_default  # Nom réel du réseau externe
    external: true        # Indique qu'il s'agit d'un réseau externe

::note

Nous partons du principe que le réseau d'Immich s'appelle immich_default. Vous pouvez vérifier la connectivité en visitant le tableau de bord de SWAG sur http://ipdevotreserveur:81. ::

Redémarrez la stack en cliquant sur « deploy » et attendez que SWAG soit complètement initialisé.

Créer le fichier subdomain.conf

Dans les dossiers de SWAG, créez un fichier nommé immich.subdomain.conf.

::tip{icon="" to="/serveex/files/file-browser-quantum"}

Astuce : vous pouvez utiliser File Browser Quantum pour naviguer et modifier vos fichiers plutôt que des commandes dans le terminal. ::

sudo nano /srv/docker/swag/config/nginx/proxy-confs/immich.subdomain.conf

Puis collez la configuration suivante :

## Version 2023/12/19

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name immich.*;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;

    #if ($lan-ip = yes) { set $geo-whitelist yes; }
    #if ($geo-whitelist = no) { return 404; }
    if ($geo-blacklist = no) { return 404; }

    # enable for ldap auth (requires ldap-location.conf in the location block)
    #include /config/nginx/ldap-server.conf;

    # enable for Authelia (requires authelia-location.conf in the location block)
    #include /config/nginx/authelia-server.conf;

    # enable for Authentik (requires authentik-location.conf in the location block)
    #include /config/nginx/authentik-server.conf;

    location / {
        # enable the next two lines for http auth
        #auth_basic "Restricted";
        #auth_basic_user_file /config/nginx/.htpasswd;

        # enable for ldap auth (requires ldap-server.conf in the server block)
        #include /config/nginx/ldap-location.conf;

        # enable for Authelia (requires authelia-server.conf in the server block)
        #include /config/nginx/authelia-location.conf;

        # enable for Authentik (requires authentik-server.conf in the server block)
        #include /config/nginx/authentik-location.conf;

        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app immich_server;
        set $upstream_port 3001;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;
    }

    location ~ (/immich)?/api {
        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app immich_server;
        set $upstream_port 3001;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;
    }
}

Appuyez sur :kbd{value="Ctrl+O"}, puis :kbd{value="Enter"} pour enregistrer, et :kbd{value="Ctrl+X"} pour quitter.

Terminé !

::

Et voilà ! Immich est maintenant accessible depuis internet. N'oubliez pas d'installer les applications iOS / Android pour synchroniser vos appareils.

Protéger Immich avec Pocket ID

Immich gère OIDC nativement, vous pouvez donc exiger une connexion Pocket ID avant de laisser qui que ce soit accéder à vos photos, plutôt qu'avec (ou en plus de) les comptes propres à l'application.

::steps{level="3"}

Enregistrer Immich comme client OIDC

Enregistrez un client OIDC dans Pocket ID nommé immich, avec ces trois URL de callback :

https://immich.mondomaine.fr/auth/login
https://immich.mondomaine.fr/user-settings
app.immich:///oauth-callback

La troisième URL est celle qui permet à l'application mobile de se connecter aussi.

Activer OAuth dans Immich

Dans Immich, allez dans Administration > Settings > Authentication Settings > OAuth, activez-le, et renseignez :

Champ Valeur
Issuer URL L'URL de découverte OIDC de Pocket ID
Client ID Le client ID copié depuis Pocket ID
Client Secret Le client secret copié depuis Pocket ID

Terminé !

::

::tip{icon="" to="/serveex/advanced/authentik"} Vous pouvez utiliser Authentik plutôt que Pocket ID :

  1. Dans Authentik, créez une application et un provider OAuth2/OpenID Connect nommé immich, avec les trois mêmes redirect URI que ci-dessus (de type Strict).
  2. Notez les Client ID, Client Secret et Slug du provider.
  3. Dans les réglages OAuth d'Immich, mettez https://authentik.mondomaine.fr/application/o/<slug>/ comme Issuer URL, puis renseignez le Client ID et le Client Secret. ::