Développement Web

Installer Forgejo sur Coolify : tutoriel pratique 2026

12 min de lecture

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

  1. Coolify → Projects → New Project → « Forge Git »
  2. Add Environment → « production »
  3. + New Resource → One-Click Service → chercher « Forgejo »
  4. 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 /data et 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

  1. Database : Postgres (déjà rempli par Coolify)
  2. Server settings : laisser défaut
  3. App URL : https://git.exemple.sn/
  4. SSH Server Domain : git.exemple.sn
  5. SSH Port : 2222
  6. HTTP Listen Port : 3000
  7. Email settings : vide pour l’instant ou Brevo SMTP
  8. Server features : Disable Open Registration (forge privée), Enable Captcha, etc.
  9. Admin Account : créer le premier admin (le plus important)
  10. 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

ErreurCauseSolution
SSH push refuse « port 22 »SSH host VPS écoute déjà 22Forgejo sur 2222, ajuster ~/.ssh/config
HTTPS clone failDomain pas correctement HTTPSForce HTTPS dans Coolify, vérifier cert
Push gros LFS échoueBody limit TraefikAugmenter dans Coolify settings
Webhook ne déclenche pasHTTPS 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.

Partager