Forgejo
Forgejo est une forge Git auto-hébergée, maintenue comme un fork communautaire de Gitea. Elle regroupe l’hébergement de dépôts, les pull requests, le suivi des tickets, les paquets et les actions CI dans un seul binaire Go qui tourne bien sur du matériel modeste. Cette image fournit la ligne LTS de Forgejo, publiée chaque mois d’avril et prise en charge environ 15 mois.
Logiciels inclus
Section intitulée « Logiciels inclus »| Composant | Version |
|---|---|
| Forgejo | 15.0.3 (LTS) |
| PostgreSQL | 18 |
| Docker | Dernière stable |
| Ubuntu | 24.04 LTS |
Forgejo s’exécute avec PostgreSQL sous forme de pile Docker Compose. L’interface web est servie sur le port 3000 et Git via SSH sur le port 2222, ce qui laisse le démon SSH de la VM sur le port 22.
Prérequis
Section intitulée « Prérequis »| Ressource | Minimum | Recommandé |
|---|---|---|
| vCPU | 1 | 2 |
| RAM | 1 Go | 2 Go |
| Stockage | 20 Go | 40 Go |
Variables d’environnement
Section intitulée « Variables d’environnement »Vous pouvez définir ces variables au moment du déploiement depuis la marketplace. Laissez un champ de mot de passe vide pour qu’une valeur aléatoire sûre soit générée automatiquement.
| Variable | Description |
|---|---|
FORGEJO_ADMIN_PASSWORD | Mot de passe du compte initial zadmin |
FORGEJO_DB_PASSWORD | Mot de passe de l’utilisateur PostgreSQL forgejo |
FORGEJO_DOMAIN | Nom d’hôte public utilisé dans les URL de clonage, par défaut l’IP |
Démarrage
Section intitulée « Démarrage »1. Connectez-vous à votre VM
Section intitulée « 1. Connectez-vous à votre VM »ssh ubuntu@<your-vm-ip>2. Attendez la configuration au premier démarrage
Section intitulée « 2. Attendez la configuration au premier démarrage »Au premier démarrage, un script génère le mot de passe de la base de données, démarre Forgejo et PostgreSQL avec Docker Compose, puis crée le compte administrateur. Comptez 1 à 2 minutes. Suivez la progression:
journalctl -u forgejo-first-boot.service -fLe message de connexion (MOTD) confirme que Forgejo est prêt et affiche les identifiants d’administration.
3. Récupérez les identifiants d’administration
Section intitulée « 3. Récupérez les identifiants d’administration »Les identifiants sont aussi écrits dans un fichier réservé à root:
sudo cat /etc/forgejo/credentials.txt4. Accédez à l’interface web
Section intitulée « 4. Accédez à l’interface web »Ouvrez un navigateur à l’adresse:
http://<your-vm-ip>:3000Connectez-vous en tant que zadmin avec le mot de passe généré. L’installateur web est verrouillé,
l’instance est donc configurée dès son démarrage.
5. Clonez via SSH
Section intitulée « 5. Clonez via SSH »Ajoutez votre clé publique dans Paramètres → Clés SSH / GPG, puis clonez sur le port 2222:
git clone ssh://git@<your-vm-ip>:2222/<owner>/<repo>.gitGérer Forgejo
Section intitulée « Gérer Forgejo »Forgejo et PostgreSQL s’exécutent sous forme de pile Docker Compose dans /opt/forgejo.
# Vérifier l'étatcd /opt/forgejo && docker compose ps
# Redémarrercd /opt/forgejo && docker compose restart
# Consulter les journauxcd /opt/forgejo && docker compose logs -f serverLes données des dépôts se trouvent dans /opt/forgejo/data/forgejo et la base de données dans
/opt/forgejo/data/postgres. La configuration est générée dans
/opt/forgejo/data/forgejo/gitea/conf/app.ini, et la plupart des réglages peuvent être remplacés
par des variables d’environnement FORGEJO__section__KEY dans le fichier compose.
Sécurité
Section intitulée « Sécurité »Les ports 3000 (HTTP) et 2222 (Git via SSH) sont ouverts sur l’interface réseau de la VM. UFW est activé et autorise ces ports ainsi que SSH (port 22).
Chaque VM génère ses propres SECRET_KEY et INTERNAL_TOKEN au premier démarrage de Forgejo, si
bien qu’aucun déploiement ne partage ses secrets de chiffrement avec un autre.
Pour restreindre l’accès à une adresse IP précise:
sudo ufw delete allow 3000/tcpsudo ufw allow from <trusted-ip> to any port 3000En production, pointez un enregistrement DNS vers la VM et placez Forgejo derrière un reverse
proxy TLS (Caddy, nginx ou Traefik), puis définissez FORGEJO_DOMAIN pour que les URL de clonage
correspondent.