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.
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 :
- 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 typeStrict). - Notez les Client ID, Client Secret et Slug du provider.
- 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. ::
