2026-06-24 20:17:46 -04:00
# 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ée `forgejo` ).
Retirer 3 rôles legacy (serveur_sendmail, client_dns, client_ldap) + nettoyage
Supprimés (supersédés / hors-conception) : serveur_sendmail (→ Postfix),
client_dns (→ plancher + client_unbound), client_ldap (login LDAP OS, hors
design). Rôles + playbooks de groupe retirés.
Nettoyage des références :
- dependances-groupes.yml : entrées client_dns/client_ldap retirées + entrées
mortes des scaffoldings (nextcloud/collabora/client_supervision) ; deps
périmées corrigées (client_smtp → serveur_postfix ; serveur_keycloak →
serveur_postgresql, la raison parlait à tort de Nextcloud).
- 6 modèles d'exemple : app mail serveur_sendmail → serveur_postfix.
- README, AGENTS : listes/glossaire nettoyés.
- catalogue-services : listes, tables, roadmap ; note « rôles retirés ».
- nomenclature-vm : infra-mail-01 → serveur_dovecot (était faux).
- courriel-conception, dns-interne (re-ciblé client_unbound), pouvoirs,
intrants, READMEs (client_smtp/forgejo/openldap/unbound).
ansible-lint : 0 échec (366 fichiers). instancier OK.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 12:14:04 -04:00
- `app.ini` : serveur derrière nginx (`HTTP_ADDR=127.0.0.1`, `ROOT_URL` https), DB, secrets, mailer vers `serveur_postfix` , inscription désactivée, `INSTALL_LOCK` (pas d'assistant web).
2026-06-24 20:17:46 -04:00
- Service systemd + création du **compte administrateur** initial (une fois).
## Secrets requis (Vault)
```yaml
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 |
Aurore rose-mauve et vert fluo ; thème Forgejo étendu au wiki
Palette (promo/, les 4 pages) — ajoute --rose:#ff6fc4 (frange magenta) et
--vert:#5cff9d (vert fluo), uniquement dans les DÉGRADÉS FONCÉS : fond fixe du
corps, nappe .aurora dérivante, filets .rule. Opacités de 5,5 % à 8,5 %, une
teinte et non un motif. Le vert entre par la gauche et le rose sort par la
droite, comme une vraie aurore. --aurora (texte et boutons) est inchangé :
l'identité de marque ne bouge pas. Appliqué identiquement aux quatre fichiers,
0 conflit CSS après coup.
Thème Forgejo (alliance.css, 29 → 118 lignes) — la feuille étant injectée par
templates/custom/header.tmpl sur toutes les pages, le wiki est couvert sans
feuille distincte. Réorganisée en deux sections de risque explicite :
§1 Variables — couleurs officielles + ciel nocturne. Sûr, résiste aux
mises à jour. ÉPROUVÉ sur forge-01 (CHANGELOG 2026-07-03).
§2 Décor — fond aurore, filet sous les titres, citations, tableaux et code
en ligne de .markup. Fragile (classes internes). JAMAIS RENDU.
Supprimer §2 ramène au thème sobre. Le ciel nocturne ne s'applique qu'aux
thèmes sombres, pour ne pas casser le thème clair.
docs/theme-forgejo-hors-flotte.md — pose manuelle sur une instance Forgejo non
gérée par Set-OPS (la forge historique qui héberge ce dépôt et son wiki).
Forgejo n'ayant aucun réglage web pour le CSS, il faut déposer la feuille sur
le serveur. La procédure ne duplique aucun fichier : elle pointe vers ceux du
rôle. Inclut la détection du répertoire custom, un garde-fou pour ne pas
écraser un header.tmpl existant (ajout de ligne), la vérification curl et la
marche arrière.
Corrige deux affirmations fausses de ma part :
- « thème jamais rendu par un Forgejo réel » était faux pour §1, éprouvée.
Le statut est désormais donné section par section.
- Contradiction consignée sur forge-01 : le plan la dit `etat: planifie`, le
CHANGELOG 2026-07-03 dit le branding « prouvé sur forge-01 ». Les deux ne
peuvent pas être vrais ; l'écart est écrit dans le README du rôle, à trancher.
Validé : équilibre accolades/parenthèses du CSS, 0 conflit CSS entre les quatre
pages, lien de doc résolu, ansible-lint 0 échec sur 485 fichiers,
prouver.py --verifier → CONFORME 16/16.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 17:42:52 -04:00
## 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` ](../../docs/theme-forgejo-hors-flotte.md ).
2026-06-24 20:17:46 -04:00
## 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).
Aurore : opacites reduites ; etat de forge-01 elucide
Palette (promo/, les 4 pages) — les teintes rose, verte et violette etaient
trop presentes une fois etalees au tour precedent. Reduction d'environ 40 % :
rose .075 -> .044, vert .058 -> .034, violet .062 -> .036, arrets
intermediaires abaisses dans la meme proportion, opacite de la nappe .aurora
.44 -> .32. Geometrie inchangee : meme largeur, meme position, seule
l'intensite baisse. 0 conflit CSS entre les quatre pages.
forge-01 — la note precedente presentait comme une contradiction a trancher
le fait que le plan dise `etat: planifie` et que le CHANGELOG du 2026-07-03
dise le branding « prouve sur forge-01 ». Ce n'en etait pas une : l'hote a ete
cree, puis supprime. Le plan decrit l'etat COURANT, le CHANGELOG un etat PASSE
— les deux disent vrai. La preuve reste valable, simplement non rejouable tant
que l'hote n'est pas recree. roles/serveur_forgejo/README.md corrige.
Valide : equilibre accolades/parentheses du CSS, 0 conflit CSS,
prouver.py --verifier -> CONFORME 16/16.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-22 11:57:50 -04:00
- **forge-01 a existé, puis a été supprimée.** L'hôte est donc `etat: planifie` dans
`instance/plan/serveurs.yml` (état **actuel** ) alors que `CHANGELOG.md` (2026-07-03)
affirme le branding « prouvé sur forge-01 » (état **passé** , accueil 200, `alliance.css`
servi). 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.
2026-06-24 20:17:46 -04:00
## Prérequis
Retirer 3 rôles legacy (serveur_sendmail, client_dns, client_ldap) + nettoyage
Supprimés (supersédés / hors-conception) : serveur_sendmail (→ Postfix),
client_dns (→ plancher + client_unbound), client_ldap (login LDAP OS, hors
design). Rôles + playbooks de groupe retirés.
Nettoyage des références :
- dependances-groupes.yml : entrées client_dns/client_ldap retirées + entrées
mortes des scaffoldings (nextcloud/collabora/client_supervision) ; deps
périmées corrigées (client_smtp → serveur_postfix ; serveur_keycloak →
serveur_postgresql, la raison parlait à tort de Nextcloud).
- 6 modèles d'exemple : app mail serveur_sendmail → serveur_postfix.
- README, AGENTS : listes/glossaire nettoyés.
- catalogue-services : listes, tables, roadmap ; note « rôles retirés ».
- nomenclature-vm : infra-mail-01 → serveur_dovecot (était faux).
- courriel-conception, dns-interne (re-ciblé client_unbound), pouvoirs,
intrants, READMEs (client_smtp/forgejo/openldap/unbound).
ansible-lint : 0 échec (366 fichiers). instancier OK.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-04 12:14:04 -04:00
- Dépendances `serveur_postgresql` , `serveur_nginx` , `serveur_postfix` (cf. `docs/dependances-groupes.yml` ).