diff --git a/promo/README.md b/promo/README.md
new file mode 100644
index 0000000..03ab2a1
--- /dev/null
+++ b/promo/README.md
@@ -0,0 +1,27 @@
+# promo/ — page de présentation Set-OPS
+
+`index.html` — page web **autonome** (un seul fichier, aucun asset externe, aucune
+dépendance réseau) présentant ce qu'un sysadmin peut faire avec Set-OPS.
+
+- **Thème** : identité *Alliance Boréale* (ciel nocturne + aurore + constellation),
+ reprise des thèmes Keycloak/Forgejo du dépôt.
+- **Honnêteté** : les capacités **éprouvées** (déployées sur VM réelles) sont distinguées
+ de la **feuille de route**, conformément au principe « ne jamais affirmer plus que ce
+ qui est prouvé » (cf. `docs/audit/`).
+
+## Voir / publier
+
+Ouvrir directement dans un navigateur :
+
+```bash
+xdg-open promo/index.html
+```
+
+Servir localement :
+
+```bash
+python3 -m http.server -d promo 8080 # puis http://localhost:8080/
+```
+
+Le fichier est prêt à déposer tel quel sur n'importe quel hébergement statique
+(Forgejo Pages, un vhost `serveur_nginx`, etc.).
diff --git a/promo/index.html b/promo/index.html
new file mode 100644
index 0000000..83ad720
--- /dev/null
+++ b/promo/index.html
@@ -0,0 +1,662 @@
+
+
+
Set‑OPS est un moteur Ansible qui construit et exploite tout un écosystème interne — identité, confiance, DNS, données, courriel, observabilité, forge — sur ta propre grappe Proxmox. À partir d'un plan déclaratif. Sans SaaS. Sans conteneur propriétaire. Et exploitable sans aucune IA.
+ édite le plan→
+ make instancier→
+ make deployer→
+ make prouver
+
+
+
+
+
+
+
+
+ La méthode
+
Tu décris. Le moteur génère. Ansible déploie. La preuve suit.
+
Set‑OPS se pilote par un plan, pas par l'édition de l'inventaire. Les registres sont la source unique de vérité ; l'inventaire Ansible en est dérivé. Tu ne touches jamais hosts.yml à la main.
+
+
+
01 · décrire
Un plan déclaratif
Serveurs, applications, bases, domaines, nomenclature — des registres lisibles par la machine, ta seule source de vérité.
+
02 · générer
Un inventaire dérivé
VMID, IP, VLAN et passerelle sont dérivés de la fonction. make instancier montre le diff avant d'appliquer.
+
03 · déployer
Par groupes, en couches
Chaque groupe a son playbook homonyme. L'orchestrateur déploie socle → PKI → services → apps → agents, dans l'ordre.
+
04 · prouver
Une preuve rejouable
make prouver rejoue les vérifications et produit un rapport horodaté. Le dépôt n'affirme jamais plus qu'il ne prouve.
+
+
+
+
+
+
+
+
+
+
+ Tout ce que tu peux faire
+
Sept piliers. Un écosystème complet, natif, chiffré, relié.
+
Tout ce qu'un hébergeur met en ligne, Set‑OPS le tient en interne — en logiciel libre, sur systemd et paquets, sans dépendance à un géant. Voici, pilier par pilier, ce que tu déploies et exploites. Le badge Éprouvé marque ce qui tourne sur des VM réelles ; Feuille de route ce qui est planifié.
+
+
+
+
+
+
+
+
+
Identité & accès
+ Éprouvé
+
+
Une identité, un mot de passe, pour tout le parc.
+
OpenLDAPKeycloakoauth2-proxyOIDC · RBAC
+
+
Un annuaire central (OpenLDAP) source unique des identités.
+
SSO web via Keycloak, qui fédère l'annuaire — « se connecter avec ton organisation ».
+
Mets n'importe quelle app derrière le SSO avec oauth2-proxy, même sans OIDC natif.
+
RBAC : des rôles de realm pilotent les niveaux d'accès (ex. Grafana Admin/Editor/Viewer).
+
+
+
+
+
+
+
+
Confiance & PKI
+ Éprouvé
+
+
Ta propre autorité de certification. Tout le trafic interne, chiffré et vérifié.
+
step-caACMEclient_pkimTLS
+
+
Une AC interne (step-ca) qui émet les certificats par ACME.
+
Certificats d'hôte auto-renouvelés, avec rechargement des vrais consommateurs.
+
Zéro-confiance est-ouest : PostgreSQL en verify-full, LDAPS, métriques & logs en HTTPS, LMTP vérifié.
+
Aucune dépendance à une AC publique pour la confiance interne.
+
+
+
+
+
+
+
+
Nommage & réseau
+ Éprouvé
+
+
Un DNS interne cohérent, et un réseau convergé multi-tenant.
+
PowerDNSUnboundVLAN dérivémake devis-reseau
+
+
DNS autoritatif interne (PowerDNS) : les enregistrements d'exposition se dérivent du plan.
+
Résolveur local (Unbound) + plancher /etc/hosts, sans casser Internet.
+
Réseau convergé 10/8, VLAN dérivé par tenant, isolation inter-tenant.
+
Config du switch générée (VLANs, passerelles, ACLs) depuis les nomenclatures.
+
+
+
+
+
+
+
+
Données
+ Éprouvé
+
+
Bases relationnelles et cache, provisionnés depuis le registre.
+
PostgreSQLRedisTLS verify-fullbinding app→base
+
+
PostgreSQL provisionne ses bases & rôles depuis le registre — le secret ne quitte jamais le rôle.
+
Chiffrement obligatoire : la base refuse toute connexion non-TLS du réseau.
+
Cache réseau Redis authentifié (accès sans mot de passe refusé).
+
Liens déclaratifs : une app se relie à sa base sans group_vars codés en dur.
+
+
+
+
+
+
+
+
Courriel souverain
+ Éprouvé
+
+
Recevoir et envoyer, de bout en bout, sur ton infra.
+
PostfixDovecotrspamdDKIM · SASL
+
+
MTA Postfix + soumission :587 authentifiée (SASL déléguée à Dovecot).
+
Boîtes Dovecot (IMAP, Maildir), utilisateurs résolus sur l'annuaire LDAP.
Bindings déclaratifs : les relations service→service vivent dans le plan.
+
Orchestrateur en couches : un point d'entrée ordonné, déterministe, généré.
+
+
+
+
+
+
+
+
+
+
+
+
+ La console de l'opérateur
+
De la grappe nue à l'écosystème vivant.
+
Tout passe par make et un plan. Un modèle générique socle — DNS, AC/PKI, edge TLS, courriel — est prêt à copier, renseigner, déployer. Puis tu vis dans le plan.
+
+
Golden template Debian 13 construit une fois, cloné pour chaque VM.
+
Clone Proxmox + cloud-init pour l'identité initiale, puis conformité par groupes.
+
Reconstruction from-zero en une commande — crée les VM manquantes puis déploie tout.
+
Multi-tenant portable : une instance par écosystème, prouvée par reconstruction.
+
+
+
+
opérateur@pilote — set-ops
+
# 1 · copier un modèle, le renseigner, générer l'inventaire
+$ cp -r exemples/modeles/socle ../mon-instance && ln -s ../mon-instance instance
+$ make instancier-appliquerFORCE=1
+production/hosts.yml généré depuis le plan.
+
+# 2 · construire le template, créer les VM, déployer la flotte
+$ make preparer-modele# socle + durcissement + cloud-init
+$ make reconstruireCONFIRMER=true# crée les VM PUIS déploie tout
+13 hôtes déployés · 0 échec
+
+# 3 · valider et PROUVER
+$ make valider# recette fonctionnelle
+Prometheus 6/6 UP · 6 vhosts HTTPS · courriel bout-en-bout · 6 dépôts restaurés
+$ make prouver
+CONFORME : 16 OK, 0 échec, 0 sauté → docs/audit/preuve-AAAA-MM-JJ.md
+
+
+
+
+
+
+
+
+
+
+
+ Cycle de vie
+
Du template nu à la flotte, et retour à zéro.
+
+
+
socle
Goldeniser
Une VM Debian 13 minimale devient le golden template : socle, durcissement, cloud-init, qemu-guest-agent.
+
clone
Cloner & identifier
Clone via l'API Proxmox ; cloud-init donne hostname, clé, IP, DNS. VMID/IP/VLAN lus dans le plan.
+
conformité
Converger
Les playbooks de groupes appliquent l'état voulu, relançables sans effet de bord. La flotte converge.
+
from-zero
Reconstruire
Tout supprimer, puis make myDay : l'écosystème renaît du code — la preuve de portabilité sans réserve.
+
+
+
+
+
+
+
+
+
+
+ Preuve & souveraineté
+
Il ne fait pas que le dire. Il le prouve.
+
Un outil d'exploitation réelle, pas une démonstration. Chaque affirmation publique est tracée vers une commande de preuve rejouable — ou corrigée.
+
+
+
Vérifier
make verifier enchaîne lint, tests, cohérence, syntaxe et les preuves. Un dépôt qui se tient droit.
+
Prouver
make prouver produit un rapport horodaté et rejouable — 16 preuves reliées au registre des affirmations. Une pièce justificative.
+
Valider
make valider : recette fonctionnelle sur la flotte vivante — cibles UP, vhosts HTTPS, courriel livré, sauvegardes restaurées.
+
+
+
100 %logiciel libre (AGPLv3) — rien n'est verrouillé
+
0dépendance SaaS · zéro conteneur propriétaire
+
0IA requise — la doc, make et le GUI suffisent
+
natifsystemd + paquets — pas de PaaS, pas de magie
+
+
+
+
+
+
+
+
+
+
+ Feuille de route
+
Ce qui arrive — annoncé, pas surestimé.
+
Fidèle au principe : on ne présente jamais comme prêt ce qui ne l'est pas. Ces capacités sont conçues et attendues, en rôles natifs comme les autres.
+
+
+
Collaboration
Nextcloud & Collabora
Fichiers, agenda, édition en ligne — sous la même identité SSO. Build prioritaire, offre « maison-OBNL ».
+
Couche web
Frontal & dorsal applicatifs
Présentation (UI, assets) et application (API), servis derrière l'edge — pour mettre tes propres webapps en ligne.
+
Certification
Label Souverain · Résilient · Exemplaire
Trois niveaux accumulatifs pour attester la qualité d'un écosystème — garde-fou social inclus.
+
+
+
+
+
+
+
+
Reprends la souveraineté de ton infrastructure.
+
Un plan, ta grappe Proxmox, et tout un écosystème numérique — libre, chiffré, prouvé. Sous le ciel de l'Alliance Boréale.