Inventaire mesure de ce qu'une reconstruction de tenant telecharge — ~1,5 Gio : Nextcloud 230 Mio, image collabora/code 471 Mio (Docker Hub), Keycloak 140, Forgejo 101, oauth2-proxy 18, plus les paquets apt (Debian + Grafana + smallstep + Icinga) sur 14 hotes. Les quatre archives sont EPINGLEES EN VERSION et vont chacune sur UN SEUL hote. Les retelecharger a chaque reconstruction est un gaspillage et une dependance de plus sur le chemin critique — un serveur tiers lent a deja fait tomber un deploiement le 2026-08-09, sur le binaire Forgejo precisement. POURQUOI POUSSER PLUTOT QUE SERVIR UN CACHE. L'exploitant proposait son poste comme cache HTTP ; l'intention est juste mais elle butait sur ce qu'on avait ferme le matin meme : les regles sortantes visent !SETOPS_INTERNES, donc une VM de tenant ne peut plus atteindre le poste. Servir un cache aurait exige de ROUVRIR un flux vers le plan d'administration. L'inversion evite le probleme entier : le controleur telecharge dans son cache (~/.cache/setops, garde par un stat), puis pousse par le canal SSH qui existe deja. Aucun port, aucun service, aucune regle, aucun couplage. Et ces artefacts deviennent deployables HORS LIGNE une fois le cache rempli. Ce que ca ne couvre pas, et qu'il faut nommer : l'image collabora/code, seule entorse a la doctrine « zero Docker » du depot — elle merite sa propre decision, pas un contournement discret ; et les paquets apt, dont le cache a sa place cote HEBERGEUR, partage entre tenants. Et une mesure qui a contredit mon hypothese : le .zip de Nextcloud pese 271 Mio contre 230 pour le .tar.bz2. Il telecharge PLUS pour decompresser moins lentement. Le changement de format attend une mesure, pas une intuition. Verifie : cache rempli (491 Mio, 4/4), ansible-lint production sur 79 fichiers, prouver.py 35 OK, plus aucun get_url n'ecrit sur la cible. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| defaults | ||
| files/custom | ||
| handlers | ||
| meta | ||
| tasks | ||
| templates | ||
| README.md | ||
serveur_forgejo
Forge Git Forgejo (binaire officiel) — dépôts Git, CI, revue de code.
Rôle
- Installe le binaire Forgejo (version épinglée, lien symbolique courant), utilisateur
git. - Crée l'arborescence (
/var/lib/forgejo,/etc/forgejo). - Base PostgreSQL via le registre (
instance/plan/bases-donnees.yml, entréeforgejo). app.ini: serveur derrière nginx (HTTP_ADDR=127.0.0.1,ROOT_URLhttps), DB, secrets, mailer versserveur_postfix, inscription désactivée,INSTALL_LOCK(pas d'assistant web).- Service systemd + création du compte administrateur initial (une fois).
Secrets requis (Vault)
serveur_forgejo_secret_key: "{{ vault_forgejo_secret_key }}" # forgejo generate secret SECRET_KEY
serveur_forgejo_internal_token: "{{ vault_forgejo_internal_token }}" # forgejo generate secret INTERNAL_TOKEN
serveur_forgejo_admin_password: "{{ vault_forgejo_admin }}"
vault_bd_forgejo: "..." # mot de passe BD (partage avec serveur_postgresql)
Variables principales
| Variable | Défaut | Rôle |
|---|---|---|
serveur_forgejo_version |
10.0.0 |
Version (à vérifier/bumper) |
serveur_forgejo_hostname |
forge.exemple.internal |
Domaine (via nginx) |
serveur_forgejo_db_host |
10.0.13.11 |
data-01 |
Identité visuelle (thème Alliance Boréale)
Désactivée par défaut : serveur_forgejo_branding: false. À true, le rôle copie
files/custom/ vers {{ serveur_forgejo_data }}/custom/ — logo, favicon, page
d'accueil et la feuille public/assets/css/alliance.css, injectée sur toutes les
pages par templates/custom/header.tmpl.
Le wiki n'a donc pas de thème distinct : Forgejo le rend avec le même habillage, et la feuille le couvre au même titre que les dépôts, les tickets et les README.
alliance.css est en deux sections, de risque différent :
| Section | Contenu | Risque | État |
|---|---|---|---|
| §1 Variables | surcharge des variables de couleur officielles (--color-primary, --color-body…) |
Sûr — aucune classe interne touchée, résiste aux mises à jour | Éprouvé sur forge-01 (CHANGELOG 2026-07-03 : alliance.css servi, cyan aurore rendu) |
| §2 Décor | fond aurore (body), filet sous les titres, citations, tableaux et code en ligne du contenu rendu (.markup) |
Fragile — sélecteurs internes de Forgejo, à revérifier après chaque montée de version majeure | Jamais rendu — ajouté le 2026-07-21, validé en syntaxe CSS seulement |
Supprimer §2 ramène au thème sobre d'origine : §1 se suffit à elle-même.
Le ciel nocturne ne s'applique qu'aux thèmes sombres (theme-forgejo-dark,
theme-forgejo-auto) pour ne pas casser le thème clair.
Pour une forge hors flotte (instance Forgejo non gérée par Set-OPS), la pose manuelle
des mêmes fichiers est décrite dans docs/theme-forgejo-hors-flotte.md.
Notes / limites
- Version à confirmer sur forgejo.org/download ; l'URL suit le motif officiel des releases.
- Le site nginx publiant Forgejo se déclare côté
serveur_nginx. - Mailer en SMTP simple vers le relais interne (sans TLS pour l'instant).
- forge-01 a existé, puis a été supprimée. L'hôte est donc
etat: planifiedansinstance/plan/serveurs.yml(état actuel) alors queCHANGELOG.md(2026-07-03) affirme le branding « prouvé sur forge-01 » (état passé, accueil 200,alliance.cssservi). Les deux disent vrai : ce n'est pas une contradiction, c'est un enregistrement historique face à un état courant. La preuve reste valable — elle ne sera simplement rejouable qu'après recréation de l'hôte.
Prérequis
- Dépendances
serveur_postgresql,serveur_nginx,serveur_postfix(cf.docs/dependances-groupes.yml).