Coolify intègre Forgejo dans sa marketplace, ce qui en fait le moyen le plus rapide de mettre en ligne une forge Git souveraine en 2026 (informations vérifiées en avril 2026, susceptibles d’évoluer) : 10 minutes pour avoir une instance fonctionnelle avec HTTPS, base PostgreSQL managée, backups configurables. Voici le tutoriel pas à pas.
Voir notre guide Forgejo complet et le guide Coolify.
Prérequis
- Coolify v4 fonctionnel sur un VPS (2 Go RAM minimum, 4 Go conseillé)
- Un domaine, par exemple
git.exemple.sn, pointé sur le VPS - Niveau intermédiaire
- Temps : 30 minutes
Étape 1 — Créer le projet et l’environnement
- Coolify → Projects → New Project → « Forge Git »
- Add Environment → « production »
- + New Resource → One-Click Service → chercher « Forgejo »
- Cliquer « Forgejo »
Étape 2 — Configurer le service
- Name :
forgejo-prod - Domain :
https://git.exemple.sn - Coolify détecte automatiquement les variables d’environnement nécessaires
- Optionnel : ajuster les ports SSH (par défaut 2222 pour ne pas conflit avec SSH host)
Coolify provisionne en parallèle :
- Conteneur Forgejo (image officielle codeberg.org/forgejo/forgejo)
- Conteneur PostgreSQL pour la base
- Volumes persistants pour
/dataet la DB - Reverse proxy Traefik avec HTTPS Let’s Encrypt
Étape 3 — Démarrer
Cliquer « Deploy ». Coolify pull les images, démarre les conteneurs, configure le reverse proxy. 5 minutes plus tard, ouvrez https://git.exemple.sn.
Étape 4 — Wizard d’installation Forgejo
- Database : Postgres (déjà rempli par Coolify)
- Server settings : laisser défaut
- App URL :
https://git.exemple.sn/ - SSH Server Domain :
git.exemple.sn - SSH Port : 2222
- HTTP Listen Port : 3000
- Email settings : vide pour l’instant ou Brevo SMTP
- Server features : Disable Open Registration (forge privée), Enable Captcha, etc.
- Admin Account : créer le premier admin (le plus important)
- Install Forgejo
Étape 5 — Configurer SSH
Sur votre laptop, ajouter dans ~/.ssh/config :
Host git.exemple.sn
Port 2222
User git
IdentityFile ~/.ssh/id_ed25519
Ajouter votre clef publique dans Forgejo : Settings → SSH Keys → Add. Cloner :
git clone git@git.exemple.sn:user/repo.git
Étape 6 — Backups
Coolify propose les backups Postgres natifs (voir guide backups Coolify). En complément, scripter un backup régulier des fichiers Forgejo :
# Cron quotidien
docker exec forgejo-prod /bin/bash -c "su git -c '/app/gitea/gitea dump -c /data/gitea/conf/app.ini --type tar.gz'"
# Pousser le tarball produit vers S3
Étape 7 — Email transactionnel
Pour les emails de notification (PR, issues), configurer SMTP. Aller dans Site Administration → Configuration → Mailer Configuration. Brevo (300 emails/jour gratuits) ou AWS SES sont les options les plus simples.
Étape 8 — OAuth2 / OIDC SSO
Pour permettre login via Google/GitHub/Zitadel : Site Administration → Authentication Sources → Add. Forgejo supporte OAuth2, OIDC, LDAP, SMTP, SSPI.
Adaptation Afrique de l’Ouest
Pour une équipe ouest-africaine, Forgejo sur Coolify hébergé à Helsinki : git push/pull en ~150-200 ms latence (acceptable). Le backup S3 automatique permet de garder une copie hors-site sans effort. Pour des données très sensibles, vous pouvez aussi héberger Coolify+Forgejo sur un VPS local au Sénégal.
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
| SSH push refuse « port 22 » | SSH host VPS écoute déjà 22 | Forgejo sur 2222, ajuster ~/.ssh/config |
| HTTPS clone fail | Domain pas correctement HTTPS | Force HTTPS dans Coolify, vérifier cert |
| Push gros LFS échoue | Body limit Traefik | Augmenter dans Coolify settings |
| Webhook ne déclenche pas | HTTPS auto-signé refusé | Cert valide ou option insecure_tls dans webhook |
Pour creuser ce sujet
Étape 1 : comprendre pourquoi Forgejo plutôt que Gitea ou GitLab
Forgejo est un fork communautaire de Gitea, créé en 2022 par Codeberg et porté par une fondation sans but lucratif. En 2026, c’est le choix le plus pérenne parmi les forges Git auto-hébergées : licence GPLv3, gouvernance transparente, mises à jour mensuelles. GitLab Community Edition reste lourd (4 Go RAM minimum), Gitea a basculé vers une structure commerciale qui inquiète une partie de la communauté.
Pour une PME au Sénégal ou en Côte d’Ivoire qui veut garder son code source sur ses propres serveurs (souveraineté, latence locale, contrôle des accès), Forgejo tourne sur 1 Go de RAM, supporte 50 utilisateurs sans broncher, et offre une interface très proche de GitHub.
Étape 2 : préparer Coolify et le sous-domaine
Sur votre VPS Hetzner ou Contabo équipé de Coolify 4.x, créez un sous-domaine git.mapme.sn avec un enregistrement A pointant vers l’IP du VPS. Vérifiez la propagation DNS avant d’aller plus loin :
dig git.mapme.sn +short
# doit retourner l'IP exacte du VPS
Si la commande retourne vide ou une mauvaise IP, attendez 15 à 30 minutes la propagation DNS, ou consultez l’interface de votre registrar. Ne lancez pas le déploiement Forgejo tant que ce dig n’est pas correct, sinon Let’s Encrypt échouera et vous devrez recommencer.
Étape 3 : créer la base Postgres dédiée
Forgejo peut tourner avec SQLite, mais pour une équipe au-delà de 5 personnes Postgres est plus robuste. Dans Coolify, dans le projet « devtools », ajoutez une ressource PostgreSQL 16. Notez les credentials générés.
Postgres 16 reste le bon choix en 2026 : Forgejo 9.x le supporte officiellement et il est maintenu jusqu’en novembre 2028. Évitez Postgres 13 qui est en fin de support.
Étape 4 : déployer Forgejo comme application Docker
Toujours dans le projet « devtools », cliquez « New Resource » → « Docker Image » et renseignez l’image officielle :
Image: codeberg.org/forgejo/forgejo:9
Ports:
3000 (HTTP web UI)
2222 (SSH git push/pull, mappé sur le port 22 public si dispo)
Persistent storage:
/data -> volume forgejo-data
/etc/ssh -> volume forgejo-ssh-host-keys
Le port SSH 2222 (interne) est exposé via Traefik en TCP sur le port 22 du VPS si vous voulez des URLs git@git.mapme.sn:user/repo.git classiques. Si le port 22 du VPS est déjà pris par votre SSH d’admin, exposez plutôt sur le port 2222 public et adaptez vos URLs Git en ssh://git@git.mapme.sn:2222/user/repo.git.
Étape 5 : variables d’environnement et premier démarrage
Renseignez les variables d’environnement Forgejo qui pointent sur la base Postgres créée à l’étape 3 :
FORGEJO__database__DB_TYPE=postgres
FORGEJO__database__HOST=postgresql-devtools:5432
FORGEJO__database__NAME=forgejo
FORGEJO__database__USER=forgejo
FORGEJO__database__PASSWD=MOT_DE_PASSE_NOTE
FORGEJO__server__DOMAIN=git.mapme.sn
FORGEJO__server__ROOT_URL=https://git.mapme.sn/
FORGEJO__service__DISABLE_REGISTRATION=true
La désactivation de l’inscription publique est essentielle si votre instance est exposée sur Internet : seuls les administrateurs créeront les comptes via l’interface admin. Lancez le déploiement, attendez 90 secondes, ouvrez https://git.mapme.sn. L’écran d’installation initial s’affiche.
Étape 6 : créer le compte administrateur et le premier dépôt
Sur l’écran d’installation initiale, validez la configuration (déjà remplie via les variables d’env) et créez le compte administrateur. Utilisez une adresse email professionnelle. Une fois connecté, créez un premier dépôt de test « hello-forgejo » et clonez-le sur votre poste :
git clone https://git.mapme.sn/admin/hello-forgejo.git
cd hello-forgejo
echo "# Hello" > README.md
git add . && git commit -m "init"
git push origin main
La preuve que ça tourne : le push réussit et le README apparaît sur l’interface web. Si HTTPS demande des credentials à chaque push, créez un Personal Access Token dans Settings → Applications.
Étape 7 : ajouter un runner Forgejo Actions pour la CI
Forgejo intègre un système d’Actions compatible avec une grande partie des actions GitHub. Pour exécuter vos pipelines de CI (lint, tests, build Docker), déployez un runner sur le même VPS ou sur un VPS séparé.
# Sur le VPS dédié au runner
docker run -d --name forgejo-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
-e FORGEJO_INSTANCE_URL=https://git.mapme.sn \
-e FORGEJO_RUNNER_REGISTRATION_TOKEN=TOKEN_GENERE \
code.forgejo.org/forgejo/runner:5
Le token de registration se génère dans Site Administration → Actions → Runners → Create new Runner. Une fois enregistré, ajoutez un fichier .forgejo/workflows/ci.yml dans votre dépôt avec un job de test, et le runner l’exécute au prochain push.
Étape 8 : sauvegarde, mise à jour, supervision
Configurez dans Coolify une sauvegarde quotidienne de la base Postgres vers un bucket S3 (Backblaze B2 ou Wasabi, environ 5 USD/mois pour 1 To). Sauvegardez aussi le volume /data de Forgejo une fois par semaine via un script tar qui pousse l’archive sur le même bucket. Sans la sauvegarde de /data, vous perdriez les pièces jointes, avatars et configuration custom.
Pour étoffer le tableau, consultez notre guide Coolify sur Hetzner et le tutoriel sauvegarde Postgres vers S3. Forgejo + Postgres + Runner sur un VPS Hetzner CPX21 (8 EUR/mois soit 5 250 FCFA) couvre les besoins d’une équipe de 10 développeurs ouest-africains, avec code source et CI 100 % auto-hébergés, sans dépendance à GitHub ni GitLab.
Étape 1 : comprendre pourquoi Forgejo plutôt que Gitea ou GitLab
Forgejo est un fork communautaire de Gitea, créé en 2022 par Codeberg et porté par une fondation sans but lucratif. En 2026, c’est le choix le plus pérenne parmi les forges Git auto-hébergées : licence GPLv3, gouvernance transparente, mises à jour mensuelles. GitLab Community Edition reste lourd (4 Go RAM minimum), Gitea a basculé vers une structure commerciale qui inquiète une partie de la communauté.
Pour une PME au Sénégal ou en Côte d’Ivoire qui veut garder son code source sur ses propres serveurs (souveraineté, latence locale, contrôle des accès), Forgejo tourne sur 1 Go de RAM, supporte 50 utilisateurs sans broncher, et offre une interface très proche de GitHub.
Étape 2 : préparer Coolify et le sous-domaine
Sur votre VPS Hetzner ou Contabo équipé de Coolify 4.x, créez un sous-domaine git.mapme.sn avec un enregistrement A pointant vers l’IP du VPS. Vérifiez la propagation DNS avant d’aller plus loin :
dig git.mapme.sn +short
# doit retourner l'IP exacte du VPS
Si la commande retourne vide ou une mauvaise IP, attendez 15 à 30 minutes la propagation DNS, ou consultez l’interface de votre registrar. Ne lancez pas le déploiement Forgejo tant que ce dig n’est pas correct, sinon Let’s Encrypt échouera et vous devrez recommencer.
Étape 3 : créer la base Postgres dédiée
Forgejo peut tourner avec SQLite, mais pour une équipe au-delà de 5 personnes Postgres est plus robuste. Dans Coolify, dans le projet « devtools », ajoutez une ressource PostgreSQL 16. Notez les credentials générés.
Postgres 16 reste le bon choix en 2026 : Forgejo 9.x le supporte officiellement et il est maintenu jusqu’en novembre 2028. Évitez Postgres 13 qui est en fin de support.
Étape 4 : déployer Forgejo comme application Docker
Toujours dans le projet « devtools », cliquez « New Resource » → « Docker Image » et renseignez l’image officielle :
Image: codeberg.org/forgejo/forgejo:9
Ports:
3000 (HTTP web UI)
2222 (SSH git push/pull, mappé sur le port 22 public si dispo)
Persistent storage:
/data -> volume forgejo-data
/etc/ssh -> volume forgejo-ssh-host-keys
Le port SSH 2222 (interne) est exposé via Traefik en TCP sur le port 22 du VPS si vous voulez des URLs git@git.mapme.sn:user/repo.git classiques. Si le port 22 du VPS est déjà pris par votre SSH d’admin, exposez plutôt sur le port 2222 public et adaptez vos URLs Git en ssh://git@git.mapme.sn:2222/user/repo.git.
Étape 5 : variables d’environnement et premier démarrage
Renseignez les variables d’environnement Forgejo qui pointent sur la base Postgres créée à l’étape 3 :
FORGEJO__database__DB_TYPE=postgres
FORGEJO__database__HOST=postgresql-devtools:5432
FORGEJO__database__NAME=forgejo
FORGEJO__database__USER=forgejo
FORGEJO__database__PASSWD=MOT_DE_PASSE_NOTE
FORGEJO__server__DOMAIN=git.mapme.sn
FORGEJO__server__ROOT_URL=https://git.mapme.sn/
FORGEJO__service__DISABLE_REGISTRATION=true
La désactivation de l’inscription publique est essentielle si votre instance est exposée sur Internet : seuls les administrateurs créeront les comptes via l’interface admin. Lancez le déploiement, attendez 90 secondes, ouvrez https://git.mapme.sn. L’écran d’installation initial s’affiche.
Étape 6 : créer le compte administrateur et le premier dépôt
Sur l’écran d’installation initiale, validez la configuration (déjà remplie via les variables d’env) et créez le compte administrateur. Utilisez une adresse email professionnelle. Une fois connecté, créez un premier dépôt de test « hello-forgejo » et clonez-le sur votre poste :
git clone https://git.mapme.sn/admin/hello-forgejo.git
cd hello-forgejo
echo "# Hello" > README.md
git add . && git commit -m "init"
git push origin main
Indicateur que tout est en place : le push réussit et le README apparaît sur l’interface web. Si HTTPS demande des credentials à chaque push, créez un Personal Access Token dans Settings → Applications.
Étape 7 : ajouter un runner Forgejo Actions pour la CI
Forgejo intègre un système d’Actions compatible avec une grande partie des actions GitHub. Pour exécuter vos pipelines de CI (lint, tests, build Docker), déployez un runner sur le même VPS ou sur un VPS séparé.
# Sur le VPS dédié au runner
docker run -d --name forgejo-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
-e FORGEJO_INSTANCE_URL=https://git.mapme.sn \
-e FORGEJO_RUNNER_REGISTRATION_TOKEN=TOKEN_GENERE \
code.forgejo.org/forgejo/runner:5
Le token de registration se génère dans Site Administration → Actions → Runners → Create new Runner. Une fois enregistré, ajoutez un fichier .forgejo/workflows/ci.yml dans votre dépôt avec un job de test, et le runner l’exécute au prochain push.
Étape 8 : sauvegarde, mise à jour, supervision
Configurez dans Coolify une sauvegarde quotidienne de la base Postgres vers un bucket S3 (Backblaze B2 ou Wasabi, environ 5 USD/mois pour 1 To). Sauvegardez aussi le volume /data de Forgejo une fois par semaine via un script tar qui pousse l’archive sur le même bucket. Sans la sauvegarde de /data, vous perdriez les pièces jointes, avatars et configuration custom.
Sur un angle proche, consultez notre guide Coolify sur Hetzner et le tutoriel sauvegarde Postgres vers S3. Forgejo + Postgres + Runner sur un VPS Hetzner CPX21 (8 EUR/mois soit 5 250 FCFA) couvre les besoins d’une équipe de 10 développeurs ouest-africains, avec code source et CI 100 % auto-hébergés, sans dépendance à GitHub ni GitLab.