Forgejo
Forge logicielle légère, auto-hébergeable, 100 % logiciel libre, gouvernée par une association à but non lucratif. Fork communautaire de Gitea né en 2022, maintenu par Codeberg e.V. À mettre en perspective avec GitHub et GitLab.
À quoi ça sert
Forgejo (prononcé « for-djé-jo », l'esperanto pour « forge ») est une forge logicielle — c'est-à-dire l'équivalent fonctionnel de GitHub ou GitLab que tu installes sur ton propre serveur. Tu y héberges tes dépôts Git, gères les Pull Requests, suis tes issues, et exécutes ta CI/CD :
- Hébergement de tes dépôts Git, sur ton infrastructure.
- Pull Requests (mêmes terminologie et flux que GitHub).
- Issues, milestones, kanban, wiki par projet.
- Forgejo Actions : CI/CD avec une syntaxe quasi-identique à GitHub Actions (la plupart des actions sont réutilisables).
- Package Registry : conteneurs Docker, paquets Python / npm / Maven, etc.
Gitea est une forge Go légère, créée en 2016. En 2022, après que Gitea Ltd. ait pris la main sur la marque, une partie de la communauté a forké le code pour garantir une gouvernance ouverte : c'est Forgejo. Le projet est porté par Codeberg e.V., une association allemande à but non lucratif. Codeberg.org est une instance Forgejo hébergée par cette même asso, ouverte gratuitement aux projets logiciels libres. Forgejo n'a pas de SaaS commercial — c'est volontaire.
Un exemple d'usage
Tu es dans une asso d'étudiants, vous voulez héberger vos projets sans dépendre de GitHub, sans payer GitLab, et sans qu'un VPS à 5 €/mois suffoque. Tu lances Forgejo via Docker en quelques minutes, chacun s'y crée un compte, et le workflow Git reste strictement identique à GitHub ou GitLab :
# Récupérer la dernière version
git pull origin main
# Créer une branche pour ta feature
git checkout -b feat/ma-fonctionnalite
# Coder, puis committer
git add .
git commit -m "Ajoute la fonctionnalité X"
# Pousser et ouvrir une Pull Request
git push origin feat/ma-fonctionnalite
Sur l'instance Forgejo, tu cliques « New Pull Request », tu décris ton changement, ton co-équipier relit, c'est merged. Les Forgejo Actions configurées relancent les tests à chaque push. Aucun compte tiers, aucune télémétrie, tout est sur votre serveur.
How-to : utiliser Forgejo
Deux voies : utiliser Codeberg.org (instance publique gratuite, pour projets libres uniquement) ou auto-héberger Forgejo avec Docker. Cette dernière voie est le cas d'usage principal de Forgejo.
-
Voie A — Créer un compte sur Codeberg.org
Si ton projet est libre (les CGU de Codeberg l'exigent), c'est l'option la plus rapide pour tester.
- Va sur codeberg.org/user/sign_up.
- Choisis un username, une adresse e-mail durable.
- Lis et accepte les conditions d'utilisation (rappel : projets libres / open source uniquement).
- Active la 2FA (Settings → Security).
Codeberg n'accepte pas toutCodeberg.org est financée par dons et a une politique stricte : pas de projets propriétaires, pas de hosting opportuniste, pas de mining, pas de spam. Pour un projet privé ou commercial, c'est auto-hébergement obligatoire (voie B).
-
Voie B — Auto-héberger Forgejo avec Docker
Le cas d'usage typique. Tu as un VPS / Raspberry Pi / serveur perso :
yaml# docker-compose.yml minimal pour démarrer services: forgejo: image: codeberg.org/forgejo/forgejo:9 restart: unless-stopped environment: - USER_UID=1000 - USER_GID=1000 volumes: - ./data:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "3000:3000" # UI web - "222:22" # SSH Git (port interne 22)bashdocker compose up -dOuvre
http://localhost:3000— un assistant d'installation web te demande la base de données (laisse SQLite pour démarrer, suffisant jusqu'à quelques dizaines d'utilisateurs), l'URL publique et le compte admin. Puis tu es opérationnel.Pour la prodMets Forgejo derrière un reverse proxy Traefik ou Caddy pour le HTTPS automatique, passe sur Postgres si tu dépasses 50 utilisateurs, et configure les sauvegardes du volume
data/(le seul état persistant). -
Créer ton premier dépôt
Le vocabulaire est identique à GitHub (Repository, Organization, Pull Request) — pas de renommage façon GitLab.
- En haut à droite, clique « + » → New Repository.
- Donne un nom au dépôt (ex.
devia-tp1). - Choisis Private ou Public.
- Coche « Initialize Repository » et choisis éventuellement un
.gitignorePython. - Clique « Create Repository ».
-
Installer Git sur ton PC
Étape strictement identique à GitHub / GitLab — Git est l'outil local, indépendant de la forge. Si déjà installé, passe.
bash# macOS brew install git # Linux (Debian / Ubuntu) sudo apt install git # Windows winget install --id Git.Git -e git --version -
Configurer ton identité Git
Indépendant du service. Si déjà fait pour GitHub / GitLab, c'est OK.
bashgit config --global user.name "Ton Prénom" git config --global user.email "ton-email@example.fr" git config --global init.defaultBranch main -
Authentifier ton PC (clé SSH)
Tu peux réutiliser ta paire de clés
id_ed25519existante.bash# Si pas de clé existante ssh-keygen -t ed25519 -C "ton-email@example.fr" cat ~/.ssh/id_ed25519.pubSur ton instance Forgejo (ou Codeberg) : Settings → SSH / GPG Keys → Add Key. Colle la clé publique. Vérifie :
bash# Sur Codeberg ssh -T git@codeberg.org # Sur une instance auto-hébergée (port SSH 222 dans l'exemple Docker) ssh -T -p 222 git@<ton-domaine> -
Cloner et travailler avec un dépôt
Sur la page du dépôt, clique « Use SSH » en haut à droite et copie l'URL.
bashgit clone git@codeberg.org:<username>/<repo>.git cd <repo> git status git add . git commit -m "Mon premier commit" git push -
VS Code avec Forgejo
Forgejo n'a pas d'extension VS Code officielle (la communauté est encore jeune). En pratique tu travailles avec :
- Le support Git natif de VS Code (clone, commit, push, branches) — déjà tout ce qu'il faut côté code.
- GitLens (
eamodio.gitlens) — annotations blame, historique, comparaisons. - L'interface web de Forgejo pour gérer les Pull Requests et les issues — elle est rapide et claire, le va-et-vient avec VS Code n'est pas pénalisant.
AstuceForgejo expose une API REST quasi compatible avec celle de Gitea (et globalement inspirée de GitHub). Si tu veux scripter (créer des issues, fermer des PR…), regarde la doc :
/api/v1/...avec un Personal Access Token. -
Bonus : un workflow Forgejo Actions minimal
Forgejo Actions reprend la syntaxe de GitHub Actions. Le fichier va dans
.forgejo/workflows/ci.yml(ou.gitea/workflows/, accepté par compatibilité) :yamlname: CI on: push: branches: [main] pull_request: jobs: test: runs-on: docker steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: "3.12" - run: pip install -r requirements.txt - run: pytestPour que ça tourne sur ton instance auto-hébergée, il te faut un runner Forgejo (un petit binaire Go qui exécute les jobs, à installer une fois). La doc officielle décrit l'install runner en quelques minutes.
Pourquoi choisir Forgejo en particulier
Forgejo joue dans une catégorie spécifique : la forge légère, libre, et auto-hébergée. Il ne cherche pas à remplacer GitHub ou GitLab sur tous les terrains — il occupe un créneau précis où il est même meilleur que ses concurrents.
Les 5 raisons qui le différencient
- Légèreté radicale — un binaire Go ≈ 200 Mo, SQLite suffit pour une petite équipe, tourne confortablement sur un Raspberry Pi ou un VPS à 3 €/mois. Pour la même charge, GitLab CE veut au moins 4 Go de RAM et un Postgres dédié.
- Logiciel libre fort (AGPL-3.0+) — la licence copyleft garantit que toute fork hébergée publiquement devra rester libre. C'est une protection contre la captation propriétaire que la licence MIT de Gitea n'offrait pas (et qui a mené au fork de 2022).
- Gouvernance associative — Codeberg e.V. est une asso allemande à but non lucratif, financée par dons, sans investisseurs. Pas de risque de pivot commercial, pas de monétisation des données, pas de feature gardée derrière un paywall.
- Compatibilité GitHub Actions — Forgejo Actions reprend la syntaxe et une bonne partie des actions de l'écosystème GitHub. Tu apprends une chose, tu sais écrire un pipeline pour les deux.
- Souveraineté complète — sur ton serveur, sur ton domaine, sous tes sauvegardes. Aucune télémétrie, aucun appel sortant. Pertinent en milieu institutionnel, scolaire, ou simplement par hygiène.
Forgejo vs GitHub / GitLab CE — quand choisir quoi
GitHub gagne sur : la communauté open source (immense), la visibilité (portfolio, recrutement), le marketplace d'Actions, GitHub Copilot. Forgejo gagne sur : l'auto-hébergement, la privacy, la souveraineté, l'absence de vendor lock-in, et la possibilité de continuer à fonctionner même si le projet upstream change radicalement de politique.
Les deux sont auto-hébergeables et libres. GitLab gagne sur : l'intégration DevOps tout-en-un (security scan, monitoring, kanban avancé), l'écosystème d'entreprise, les fonctionnalités EE pour grands déploiements. Forgejo gagne sur : la simplicité (un seul binaire), les ressources requises (Pi vs VM puissante), la rapidité de l'UI, la gouvernance associative (vs entreprise commerciale).
Les limites qu'il faut connaître
- Pas de SaaS commercial. Codeberg.org existe mais n'accepte que des projets libres. Pour héberger un projet privé / pro, tu dois auto-héberger — donc gérer un serveur.
- Communauté plus petite que GitHub et GitLab. Tu trouveras moins de tutos en français, moins de réponses sur Stack Overflow, moins de templates prêts à l'emploi.
- Pas de marketplace équivalent à celui de GitHub. La majorité des actions GitHub fonctionnent, mais sans le côté découverte UI.
- Pas d'IA intégrée de niveau Copilot. Tu peux brancher des outils externes mais il n'y a pas d'offre native.
- Fédération en cours : l'idée d'envoyer une PR depuis ton instance vers une autre est en développement (codename F3 / ActivityPub). Pas encore production-ready.
Cas d'usage où Forgejo est la bonne réponse
- Asso étudiante / hackerspace / collectif qui veut un Git interne sans payer ni dépendre de GitHub. C'est le cas d'école.
- Projets libres qui veulent une alternative éthique à GitHub : code chez Codeberg.org, miroir public sur GitHub pour la visibilité.
- Petites équipes / freelances qui veulent leur propre forge sans la complexité de GitLab.
- Souveraineté : organismes publics, écoles, ONGs qui ne veulent pas que leur code transite par des services étrangers.
- Apprentissage de l'auto-hébergement : Forgejo est un excellent premier service à auto-héberger — léger, retour visuel immédiat, peu de pièges.
Comme pour GitLab, rien n'empêche d'utiliser Forgejo en plus de GitHub. Beaucoup de projets gardent leur code source de référence sur Codeberg et exposent un miroir GitHub pour la visibilité. git remote add github … et un push double, c'est la solution la plus simple.
Aide-mémoire Git
Toujours les mêmes commandes Git — la forge ne change rien. Voir les fiches
GitHub et GitLab pour le détail.
Spécificité Forgejo : si ton instance auto-hébergée écoute SSH sur un port non
standard (ex. 222), il faut le préciser dans l'URL ou dans ~/.ssh/config.
# Cycle de base (identique partout)
git clone <url>
git status
git add .
git commit -m "message"
git push
git pull
# Cloner depuis une instance Forgejo avec port SSH non standard
git clone ssh://git@mon-forgejo.fr:222/user/repo.git
# Ou configurer une fois dans ~/.ssh/config :
# Host mon-forgejo.fr
# Port 222
# User git
# Puis : git clone git@mon-forgejo.fr:user/repo.git
# Avoir plusieurs remotes (Codeberg + miroir GitHub par ex.)
git remote -v
git remote add github git@github.com:user/repo.git
git push github main
Pour aller plus loin
- Site officiel Forgejo : forgejo.org
- Documentation : forgejo.org/docs/latest
- Instance publique pour projets libres : codeberg.org
- Forgejo Actions : forgejo.org/docs/latest/user/actions
- Fiches jumelles sur ce site : GitHub et GitLab.