# web_frontal Hébergement de **sites web statiques** (nginx), derrière l'edge. Première brique de la **plateforme webapp** de Set-OPS : **100 % natif** — pas de conteneur, pas de runtime, pas de base de données. Le contenu vient d'un **dépôt git souverain** (Forgejo). Codifié depuis le spike du 2026-07-05 (site Alliance Boréale). ## Ce que le rôle fait Pour chaque site déclaré dans `web_frontal_sites` : 1. `git clone`/`pull` du dépôt → `/srv/web/` ; 2. vhost nginx servant `` (ex. `public/`), avec en-têtes de sécurité + CSP (défaut : `self` only, aucun tiers, aucun pistage), gzip, cache, `try_files`. Exposé via `applications.yml` (champ `expose`) → l'edge proxie en HTTPS (TLS step-ca). Les SAN du cert edge et le plancher /etc/hosts sont **auto-dérivés du plan**. ## Déclaration (group_vars du groupe web_frontal) ```yaml web_frontal_sites: - nom: alliance server_name: "alliance-boreale.{{ domaine_interne }}" depot: "https://forge.{{ domaine_interne }}/alliance/site-alliance-boreale.git" branche: main sous_dossier: public # csp: "..." # optionnel, sinon web_frontal_csp_defaut ``` Et dans `applications.yml` : une app `groupe: web_frontal, hote: , port: 80, expose: [alliance-boreale.]`. ## Portée Statique seulement (le **frontal**). Les apps **dynamiques** (runtime + service systemd + BD via resoudre_base) relèveront d'un rôle *dorsal* à venir — même éthos : natif, systemd, zéro conteneur. ## Validation `ansible-lint` profil production + `--syntax-check`. Éprouvé sur web-frontal-01 (site servi via l'edge, HTTPS step-ca vérifié, CSP en place).