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>
4.3 KiB
Appliquer le thème Alliance Boréale à une forge Forgejo hors flotte
Procédure manuelle, pour une instance Forgejo qui n'est pas gérée par Set-OPS — typiquement la forge historique qui héberge ce dépôt et son wiki.
Pour une forge de la flotte (
forge-01), ne rien faire à la main : passerserveur_forgejo_branding: trueet déployer le groupeserveur_forgejo. Le rôle copie exactement les mêmes fichiers.
Ce que ça couvre
Forgejo n'offre aucun réglage web pour le CSS personnalisé : il faut déposer un fichier sur le serveur. Une fois en place, la feuille est injectée sur toutes les pages — dépôts, tickets, code, README et wiki. Le wiki n'a pas de thème distinct, il hérite du même habillage.
Prérequis
- accès root (ou
sudo) sur la machine qui exécute Forgejo ; - connaître le répertoire
customde l'instance ; - une fenêtre où redémarrer le service est acceptable (quelques secondes d'indisponibilité).
Trouver le répertoire custom :
# 1. déclaré explicitement ?
grep -iE '^\s*(CUSTOM_PATH|ROOT)\s*=' /etc/forgejo/app.ini
# 2. ou par la variable d'environnement du service
systemctl show forgejo -p Environment | tr ' ' '\n' | grep -i custom
# 3. défaut usuel des paquets / installs binaires
ls -d /var/lib/forgejo/custom 2>/dev/null
Les fichiers
Les deux fichiers vivent déjà dans ce dépôt — ne pas en faire de copie :
| Fichier du dépôt | Destination sur la forge |
|---|---|
roles/serveur_forgejo/files/custom/public/assets/css/alliance.css |
<custom>/public/assets/css/alliance.css |
roles/serveur_forgejo/files/custom/templates/custom/header.tmpl |
<custom>/templates/custom/header.tmpl |
Optionnels, si l'on veut aussi le logo et la favicon étoile :
files/custom/public/assets/img/{logo,favicon}.svg → <custom>/public/assets/img/.
Pose
Depuis une copie locale du dépôt, en remplaçant FORGE et CUSTOM :
FORGE=root@forge.exemple.ca # hôte de la forge
CUSTOM=/var/lib/forgejo/custom # répertoire custom trouvé plus haut
SRC=roles/serveur_forgejo/files/custom
scp "$SRC/public/assets/css/alliance.css" "$FORGE:/tmp/alliance.css"
Puis sur la forge :
CUSTOM=/var/lib/forgejo/custom
OWNER=git:git # utilisateur du service (souvent git ou forgejo)
install -D -o $OWNER -m 0644 /tmp/alliance.css "$CUSTOM/public/assets/css/alliance.css"
Injecter la feuille — l'étape à ne pas rater
header.tmpl est injecté dans le <head> de toutes les pages.
⚠️ Si le fichier existe déjà, ne pas l'écraser : une autre personnalisation y vit peut-être. Y ajouter la ligne.
CUSTOM=/var/lib/forgejo/custom
LINK='<link rel="stylesheet" href="{{AppSubUrl}}/assets/css/alliance.css?v=1">'
TPL="$CUSTOM/templates/custom/header.tmpl"
if [ -f "$TPL" ]; then
grep -qF 'alliance.css' "$TPL" || printf '%s\n' "$LINK" >> "$TPL"
else
install -D -o git:git -m 0644 /dev/null "$TPL"
printf '%s\n' "$LINK" > "$TPL"
fi
systemctl restart forgejo
Vérifier
# la feuille est servie (200, type CSS)
curl -sI https://forge.exemple.ca/assets/css/alliance.css | head -3
# elle est bien référencée dans le <head> d'une page de wiki
curl -s https://forge.exemple.ca/<proprio>/<depot>/wiki | grep -o 'alliance\.css[^"]*'
À l'œil, sur une page de wiki en thème sombre : fond bleu nuit avec une nappe magenta à droite et verte en bas à gauche, filet d'aurore sous les titres, code en ligne en teal.
Le ciel nocturne ne s'applique qu'aux thèmes sombres (forgejo-dark, forgejo-auto).
En thème clair, seules les couleurs d'accent changent — c'est voulu.
Revenir en arrière
CUSTOM=/var/lib/forgejo/custom
sed -i '/alliance\.css/d' "$CUSTOM/templates/custom/header.tmpl"
rm -f "$CUSTOM/public/assets/css/alliance.css"
systemctl restart forgejo
Après une mise à jour de Forgejo
alliance.css est en deux sections (cf. roles/serveur_forgejo/README.md) :
- §1 Variables — surcharge de variables de couleur officielles. Ne casse pas.
- §2 Décor — s'appuie sur des classes internes (
.markup h1,.markup blockquote…). À revérifier après chaque montée de version majeure. Si quelque chose déraille, supprimer §2 ramène au thème sobre sans rien perdre d'essentiel.