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>
125 lines
4.4 KiB
Markdown
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.
|