Le frontal derive ses vhosts des expositions publiques (meme derivation que l edge), filtre par ModSecurity v3 + OWASP CRS (DetectionOnly d abord, eprouve), refuse les noms inconnus, et ne sert plus rien lui-meme. Les sites statiques passent au dorsal, relaye par l edge et par le frontal. Sondes : frontal (nouvelle), sites-servis suit le dorsal. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
58 lines
3.4 KiB
YAML
58 lines
3.4 KiB
YAML
---
|
|
# =========================================================================
|
|
# serveur_web_dorsal — webapps DYNAMIQUES (runtime + service systemd), derriere l'edge.
|
|
# 2e brique de la plateforme webapp : 100% natif (venv/paquets + systemd + nginx),
|
|
# ZERO conteneur. L'app ecoute en localhost ; un vhost nginx local la fronte ;
|
|
# l'edge proxie vers ce nginx. BD reseau (PG) via resoudre_base si l'app en a une ;
|
|
# les apps a etat local (SQLite) utilisent un data_dir persistant.
|
|
# Codifie depuis le spike du 2026-07-05 (monregistraire, FastAPI + uvicorn + SQLite).
|
|
# =========================================================================
|
|
serveur_web_dorsal_racine: "/srv/webapp"
|
|
serveur_web_dorsal_utilisateur: "webapp"
|
|
|
|
# Liste des webapps servies par ce noeud. Chaque entree :
|
|
# nom identifiant court (dossier + service + vhost)
|
|
# server_name FQDN servi (doit etre expose via applications.yml -> edge, port 80)
|
|
# depot URL du depot git de l'app (souverain, ex. Forgejo)
|
|
# branche branche a deployer (defaut: main)
|
|
# port port local ecoute par l'app (127.0.0.1:<port>)
|
|
# commande ExecStart, relatif au dossier de l'app (ex: .venv/bin/uvicorn app.main:app --host 127.0.0.1 --port 8001)
|
|
# requirements fichier pip (defaut: requirements.txt) ; venv cree automatiquement
|
|
# env dict de variables d'environnement (secrets via voute)
|
|
# data_dir repertoire d'etat persistant (optionnel ; cree, possede par webapp)
|
|
serveur_web_dorsal_apps: []
|
|
|
|
# LES CODES QU'UNE WEBAPP SAINE PEUT RENDRE A LA RACINE, sans etre authentifie.
|
|
#
|
|
# 200 quand elle sert, 302 quand elle renvoie vers une page de connexion, 401/403 quand
|
|
# elle exige une identite, 404 quand la racine n'est pas une route — une API sous
|
|
# `/api/...` est parfaitement saine sans rien servir a `/`. Ce qui reste exclu : les 5xx
|
|
# et l'absence de reponse, c'est-a-dire l'app coincee ou morte.
|
|
serveur_web_dorsal_sonde_codes: "HTTP/1.1 200,HTTP/1.1 302,HTTP/1.1 401,HTTP/1.1 403,HTTP/1.1 404"
|
|
|
|
# --- LES SITES STATIQUES (2026-09-29, repris du web frontal) -------------------------------
|
|
#
|
|
# LE DORSAL PORTE LES SITES ; LE FRONTAL NE SERT RIEN LUI-MEME. Le web frontal est le reverse
|
|
# proxy et le WAF devant les services web publics du locataire ; ce qui est servi — les
|
|
# applications comme les sites statiques — vit ici. Un site statique : 100 % natif, nginx,
|
|
# le contenu cloné d'un depot git souverain.
|
|
serveur_web_dorsal_sites_racine: "/srv/web"
|
|
|
|
# En-tetes de securite par defaut (sobriete + vie privee : tout local, pas de tiers).
|
|
serveur_web_dorsal_csp_defaut: >-
|
|
default-src 'self'; img-src 'self' data:; style-src 'self'; script-src 'self';
|
|
object-src 'none'; base-uri 'self'; frame-ancestors 'self'
|
|
|
|
# Liste des sites statiques servis par ce noeud. Chaque entree :
|
|
# nom identifiant court (dossier + vhost)
|
|
# server_name FQDN servi — celui que le plan EXPOSE (applications.yml -> edge ou frontal)
|
|
# depot URL du depot git du site (souverain, ex. Forgejo)
|
|
# branche branche a servir (defaut: main)
|
|
# sous_dossier sous-dossier du depot a servir comme racine (ex: public)
|
|
# csp Content-Security-Policy specifique (optionnel)
|
|
serveur_web_dorsal_sites: []
|
|
|
|
# LE PORT DES VHOSTS LOCAUX DES SITES. En clair sur cette machine : c'est le frontal (ou
|
|
# l'edge, pour un nom interne) qui les recoit et les relaie. La sonde mesure ce qu'il ira
|
|
# chercher — si le frontal est vert et le site muet, la panne est ici.
|
|
serveur_web_dorsal_sites_port: 80
|