Set-OPS-Public/docs/exploitation/theme-forgejo-hors-flotte.md
Daniel Allaire aab1bcc83a doc : rangee par lecteur, trois portes d'entree (architecture, setup, usage) et un index
README reduit au role du projet et au demarrage rapide. docs/architecture.md (schemas
Mermaid), docs/setup.md, docs/usage.md (154 cibles en 13 familles), docs/README.md (index).
Documents ranges en conception/, exploitation/, hebergement/, projet/ ; 598 chemins suivis.
QUICKSTART.md, SOLUTION.md, architecture-set-ops.md et la carte fondus puis retires.

Preuves : P48 lit l'index et conception/mecanismes.md ; les gardes parcourent docs/ sous-
dossiers compris (_documents) ; usage.md suit le Makefile dans les deux sens.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 01:01:54 -04:00

125 lines
4.4 KiB
Markdown

# Appliquer le thème Alliance Boréale à une forge Forgejo hors flotte
> **Pour qui :** l'**exploitant** d'une forge Forgejo *hors* de la flotte Set-OPS.
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.