Déploiement : plus aucune valeur d'exemple à corriger à la main
L'unité web portait ORIGIN=https://veille.example.org : un fichier versionné qu'il fallait éditer à chaque déploiement, et dont l'oubli casse silencieusement les soumissions de formulaire. Remplacé par PROTOCOL_HEADER / HOST_HEADER : l'application déduit son origine des en-têtes du reverse proxy et fonctionne donc sur n'importe quel domaine, sans édition. Vérifié en exécutant réellement le binaire construit : deux domaines différents servis par le même processus, HTTP 200 dans les deux cas, et un ORIGIN figé l'emporte bien sur les en-têtes. Au passage, une affirmation fausse que j'avais écrite en commentaire : « le .env l'emporte sur les variables systemd ». C'est l'inverse — le --env-file de Node ne remplace pas une variable déjà présente dans l'environnement (constaté sur Node 24). Le commentaire dit désormais pourquoi ORIGIN dans .env fonctionne quand même : parce que l'unité ne le déclare pas. Et un contrôle mécanique interdit désormais de le redéclarer. ExecStart passe par /usr/bin/env : NodeSource installe node dans /usr/bin, une compilation manuelle dans /usr/local/bin, un chemin figé échouait sur l'un des deux. Deux contrôles ajoutés à make verifier : aucune valeur d'exemple active dans les unités systemd, et ORIGIN laissé au .env. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
29424afdd5
commit
bdeaa9fa7f
+10
-5
@@ -51,10 +51,15 @@ VEILLE_NOTIF_DESTINATAIRE=
|
||||
# Node ≥ 20.6 : lancer avec `node --env-file=.env build`
|
||||
HOST=127.0.0.1
|
||||
PORT=3971
|
||||
# Obligatoire derrière un reverse proxy, sinon « Cross-site POST form
|
||||
# submissions are forbidden ». Alternative : PROTOCOL_HEADER + HOST_HEADER.
|
||||
ORIGIN=https://veille.example.org
|
||||
# PROTOCOL_HEADER=x-forwarded-proto
|
||||
# HOST_HEADER=x-forwarded-host
|
||||
# Mise en sommeil de l'app sans trafic (activation par socket systemd).
|
||||
IDLE_TIMEOUT=300
|
||||
|
||||
# Origine des requêtes. Rien à renseigner dans le cas courant : l'unité
|
||||
# systemd fait déduire l'origine des en-têtes posés par le reverse proxy
|
||||
# (PROTOCOL_HEADER / HOST_HEADER), ce qui fonctionne quel que soit le domaine.
|
||||
#
|
||||
# Décommentez seulement si vous préférez la figer — adapter-node la retient
|
||||
# alors d'office. Cela fonctionne parce que l'unité systemd ne déclare PAS
|
||||
# ORIGIN : le `--env-file` de Node ne remplace jamais une variable déjà
|
||||
# présente dans l'environnement.
|
||||
# ORIGIN=https://votre-domaine
|
||||
|
||||
Reference in New Issue
Block a user