Set-OPS-Public/docs/theme-forgejo-hors-flotte.md
Daniel Allaire f8e754c0b0 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

123 lines
4.3 KiB
Markdown

# 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 : passer
> `serveur_forgejo_branding: true` et déployer le groupe `serveur_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 `custom`** de l'instance ;
- une fenêtre où redémarrer le service est acceptable (quelques secondes d'indisponibilité).
Trouver le répertoire `custom` :
```bash
# 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` :
```bash
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** :
```bash
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.
```bash
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
```bash
# 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
```bash
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.