Objectif
À l’issue de ce TP, vous disposerez d’une forge réellement utilisable en production — pas d’un bac à sable. C’est celle que vous garderez pour toute la suite de la formation, et probablement au-delà.
Vous allez :
- déployer Forgejo et sa base de données ;
- le publier sous son nom définitif, en HTTPS ;
- valider l’installation avec les bons réglages ;
- raccorder l’authentification à votre annuaire ou votre fournisseur d’identité ;
- structurer les organisations et les équipes ;
- et surtout vérifier que votre accès de secours fonctionne — le contrôle que tout le monde oublie.
Prérequis
| Élément | Détail |
|---|---|
| Une VM Linux | Docker et Docker Compose installés |
| Un nom DNS | Résolvant vers la VM, en interne |
| Un reverse proxy | Nginx, Traefik ou Caddy — ou aucun, voir parcours minimal |
| Un certificat | Autorité interne, Let’s Encrypt, ou auto-signé pour un lab |
| (optionnel) Un IdP | Authentik, Keycloak, ADFS, Entra ID |
| (optionnel) Un annuaire | Active Directory avec un compte de service |
Trois parcours possibles pour la partie authentification, selon ce dont vous disposez :
- Parcours A — vous avez un fournisseur d’identité → mission 5A
- Parcours B — vous avez un annuaire mais pas d’IdP → mission 5B
- Parcours C — ni l’un ni l’autre → mission 5C
⚠️ Avant de commencer : notez vos décisions
Reprenez la checklist de la leçon 2.1 et remplissez-la. Vous en aurez besoin à chaque mission, et certaines de ces valeurs sont difficiles à changer après coup.
| # | Décision | Votre valeur |
|---|---|---|
| 1 | Nom DNS de la forge | |
| 2 | Type de certificat | |
| 3 | Chemin des données sur l’hôte | |
| 4 | Nom de l’organisation principale | |
| 5 | Nom de la source d’authentification | |
| 6 | Emplacement de sauvegarde |
Mission 1 — Déployer
Préparez l’arborescence sur l’hôte, avec les bonnes permissions, puis déployez Forgejo et PostgreSQL.
Contraintes :
- Le mot de passe de la base ne doit apparaître nulle part dans le
docker-compose.yml. - L’image doit être épinglée sur une version majeure.
- La base ne doit être joignable que par Forgejo.
- Aucun port ne doit être publié sur l’hôte (sauf si vous suivez le parcours sans reverse proxy).
- Forgejo ne doit pas démarrer avant que la base ne soit réellement prête.