Aller au contenu

Reverse proxy et URL de base

Configuration

Placez HolyArrs à une adresse comme https://home.example/holyarrs derrière votre reverse proxy.

Un reverse proxy est le serveur web placé devant vos applications, qui envoie chaque adresse vers le bon conteneur. L’URL de base est le chemin sous lequel HolyArrs est servi.

  1. Ajoutez le chemin à votre fichier compose :

    services:
    holyarrs:
    environment:
    - HOLYARRS_URL_BASE=/holyarrs
  2. Redémarrez le conteneur.

  3. Ajoutez une règle de proxy tirée des Exemples de proxy.

  4. Ouvrez https://home.example/holyarrs/. Vous devriez voir la page de connexion. Settings > This app (Paramètres > Cette application) affiche le chemin utilisé.

Où définir le chemin

Lien vers Où définir le chemin
Où Prise en compte
HOLYARRS_URL_BASE Au démarrage. Passe avant les autres.
Option -url-base /holyarrs Au démarrage, quand la variable n’est pas définie.
Settings > This app Au prochain démarrage, seulement quand ni la variable ni l’option ne sont définies.

nginx-proxy-manager. Créez un proxy host pour votre domaine, puis ajoutez une custom location :

  • Location : /holyarrs
  • Forward hostname holyarrs, port 6262. Pas de barre oblique à la fin, sinon le chemin est retiré.
  • Dans la zone de l’engrenage de cette location :
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
proxy_read_timeout 1h;

Traefik. N’ajoutez pas de middleware StripPrefix.

labels:
- traefik.enable=true
- traefik.http.routers.holyarrs.rule=Host(`home.example`) && PathPrefix(`/holyarrs`)
- traefik.http.services.holyarrs.loadbalancer.server.port=6262

Caddy. Utilisez handle. handle_path retire le chemin.

home.example {
handle /holyarrs* {
reverse_proxy holyarrs:6262 {
flush_interval -1
}
}
}

Noms d’hôte et adresses de proxy

Lien vers Noms d’hôte et adresses de proxy
  • Si l’on accède à HolyArrs par un nom d’hôte, ajoutez-le à HOLYARRS_ALLOWED_HOSTS.
  • Si le proxy ajoute X-Forwarded-For, ajoutez l’adresse du proxy à HOLYARRS_TRUSTED_PROXIES. Sans cela, la connexion ne peut pas savoir qui se trouve sur votre réseau domestique.

Si ça ne fonctionne pas

Lien vers Si ça ne fonctionne pas
Symptôme Cause Solution
Toutes les pages répondent « not found » Le proxy retire le chemin Supprimez le paramètre qui retire le chemin, ou la barre oblique finale.
Les mises à jour en direct n’arrivent jamais Le proxy met les réponses en tampon Désactivez la mise en tampon (proxy_buffering off, flush_interval -1).
Un chemin enregistré vous a bloqué l’accès Le chemin enregistré est faux Démarrez avec HOLYARRS_URL_BASE=/ pour l’ignorer.
La connexion vous considère comme hors de votre réseau Le proxy n’est pas approuvé Envoyez X-Real-IP et X-Forwarded-For, et définissez HOLYARRS_TRUSTED_PROXIES.

Plus de solutions : Dépannage.

Règles du chemin
  • Caractères autorisés : lettres, chiffres, -, _, . et /. Pas de .. ni de //.
  • holyarrs, /holyarrs et /holyarrs/ veulent tous dire /holyarrs.
  • Un chemin enregistré qui n’est pas valide est ignoré.
  • Tout passe sous le chemin : les pages, l’API, les mises à jour en direct, la connexion et les liens que HolyArrs construit (liens d’invitation, flux du calendrier).
  • /healthz et /readyz répondent aussi à la racine, donc le contrôle de santé de l’image continue de fonctionner.
  • Toute autre adresse hors du chemin répond « not found ».
Ce que le proxy doit faire
Besoin Pourquoi
Transmettre le chemin tel quel HolyArrs route les requêtes d’après le chemin complet.
Conserver l’en-tête Host Les contrôles d’hôte et les liens construits s’en servent.
Pas de mise en tampon des réponses Les mises à jour en direct arrivent en continu dans une seule réponse ouverte.
Long délai de lecture (1 h) Le flux des mises à jour en direct reste ouvert.

HolyArrs est gratuit. S'il vous a fait gagner du temps, mettez-lui une étoile sur GitHub, sponsorisez-le ou offrez-moi un café.