Skip to main content

5.1 - Reverse proxy Caddy

Immich doit être publié à la racine d'un domaine ou sous-domaine. Une publication sous /immich n'est pas prise en charge.

Exemple Caddy

Pour ton environnement :

immich.dreamsaphir.net {
    reverse_proxy http://ADRESSE_TRUENAS:30041
}

Après modification :

caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy
sudo systemctl status caddy --no-pager

Si Caddy fonctionne en conteneur, l'adresse 127.0.0.1 désigne le conteneur Caddy lui-même. Utiliser une adresse ou un réseau Docker permettant d'atteindre TrueNAS.

En-têtes attendus

Le proxy doit transmettre :

Host
X-Real-IP
X-Forwarded-For
X-Forwarded-Proto

Caddy gère normalement les en-têtes de proxy requis. Une configuration personnalisée ne doit pas les supprimer.

Gros fichiers et délais

Les vidéos volumineuses exigent des délais suffisants. Tester un vrai upload depuis l'extérieur, pas seulement l'ouverture de la page de connexion.

Contrôles

getent hosts immich.dreamsaphir.net
curl -I https://immich.dreamsaphir.net
curl -I http://ADRESSE_TRUENAS:30041
journalctl -u caddy -n 100 --no-pager

Tester également :

https://immich.dreamsaphir.net/.well-known/immich

Ce point de terminaison doit atteindre Immich, notamment pour éviter des problèmes avec l'application mobile.

Certificat interne

Si Caddy et Immich communiquent sur le réseau local en HTTP, le chiffrement public est terminé par Caddy. Restreindre le port 30041 au réseau interne et ne pas l'exposer directement sur Internet.

Après une migration

  1. tester la nouvelle instance par IP locale ;
  2. conserver l'ancienne instance arrêtée ou en lecture seule ;
  3. modifier la cible Caddy ;
  4. recharger Caddy ;
  5. vérifier Web, mobile, OAuth et uploads ;
  6. conserver un moyen de retour rapide vers l'ancienne cible.

Référence : https://docs.immich.app/administration/reverse-proxy/