# 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`). - `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). - 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 | ## 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). ## 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). - **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. ## Prérequis - Dépendances `serveur_postgresql`, `serveur_nginx`, `serveur_postfix` (cf. `docs/dependances-groupes.yml`).