Forgejo
Forgejo est une forge Git auto-hébergée : hébergement de dépôts, pull requests, gestion de tickets, et CI/CD via Forgejo Actions, packagée en un seul binaire ou conteneur. Le projet doit son existence à Gitea. En octobre 2022, un groupe d’anciens mainteneurs de Gitea a forké son code après que les noms de domaine et la marque du projet sont passés à une nouvelle société à but lucratif sans consultation de la communauté, avant de lancer Forgejo publiquement deux mois plus tard, présenté dès le départ comme un « remplacement direct de Gitea ». Le projet est depuis développé sous l’égide de l’association à but non lucratif Codeberg e.V. Pour qui hésite encore entre les deux avant de choisir, l’essentiel ne se joue pas dans la liste des fonctionnalités, mais dans la question de qui contrôle le projet.
Licence : GPL v3.0-or-later (GPL v3+) depuis Forgejo v9.0, confirmée directement dans le fichier LICENSE du dépôt forgejo/forgejo sur Codeberg et reprise sur la FAQ officielle de Forgejo. Ce n’est pas la licence d’origine : tout ce qui précède la v8.0 était en MIT, héritée de Gitea au moment du fork de 2022. Le passage au GPL v3+ a été acté en juin 2023 et appliqué en août 2024 ; l’annonce officielle du projet le présente en partie comme une protection contre « des pratiques commerciales abusives, comme la création d’une version modifiée de Forgejo offrant moins de libertés aux utilisateurs », un écho assez direct à la façon dont le projet est lui-même né. Libre pour tout usage, y compris commercial et hébergement payant pour des tiers ; redistribuer un binaire Forgejo modifié impose désormais de publier le code source de cette modification sous la même licence.
Infos clés : site officiel forgejo.org · code source codeberg.org/forgejo/forgejo, sans miroir GitHub officiel puisque le développement se fait exclusivement sur Codeberg · image Docker codeberg.org/forgejo/forgejo, le registre propre à Forgejo · dernière stable 15.0.4 · variantes de conteneur rootful et rootless avec des chemins internes différents · interface web sur le port 3000, SSH sur le port 22 du conteneur.
Pourquoi Forgejo existe
Le récit que fait Forgejo de sa propre naissance est sans détour sur l’élément déclencheur : en octobre 2022, les noms de domaine et la marque de Gitea sont passés à une nouvelle société à but lucratif, Gitea Ltd, sans consultation de la communauté. Une lettre ouverte adressée aux propriétaires de Gitea est restée sans réponse, et un groupe de mainteneurs a préféré construire Forgejo, en le plaçant sous l’égide de Codeberg e.V., une association à but non lucratif enregistrée à Berlin dont les statuts l’engagent à « garantir l’ouverture et la disponibilité continue des logiciels libres ». Codeberg détient les noms de domaine et les marques de Forgejo ; la gouvernance de Forgejo fonctionne toutefois indépendamment de l’activité quotidienne de Codeberg. Forgejo a démarré comme ce que sa page de comparaison appelle un « soft-fork », assez proche de Gitea pour qu’une migration depuis une installation existante se fasse presque sans friction. Cela a changé début 2024, quand Forgejo est devenu un hard fork et que son code a vraiment commencé à diverger. Le projet teste et prend toujours en charge la mise à niveau directe d’une installation Gitea, migrations de base de données comprises, mais précise explicitement qu’il n’est « plus garanti compatible avec Gitea » comme il l’était à l’origine. Pour le récit complet côté Gitea, voir notre fiche Gitea.
Installer Forgejo avec Docker
Voici la configuration SQLite du guide officiel d’installation Docker de Forgejo, celle par laquelle démarrent la plupart des homelabs. Les bases MySQL et PostgreSQL sont documentées séparément, pour des instances plus grandes et multi-utilisateurs.
networks:
forgejo:
external: false
services:
server:
image: codeberg.org/forgejo/forgejo:15
container_name: forgejo
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
networks:
- forgejo
volumes:
- ./forgejo:/data
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
- Installez Docker si besoin, enregistrez le fichier ci-dessus en docker-compose.yml, puis lancez docker compose up -d.
- Faites correspondre USER_UID et USER_GID au propriétaire du dossier ./forgejo sur l’hôte : la documentation de Forgejo prévient que le conteneur peut carrément refuser de démarrer si ces droits sont incorrects.
- Le port hôte 222 pointe vers le serveur SSH interne de Forgejo (port 22) : le clonage en SSH utilise donc le 222, sauf si ce mapping est modifié.
- Ouvrez http://ip-de-votre-serveur:3000 et terminez l’assistant de configuration. SQLite est pré-rempli et suffit pour une première instance ; restent à choisir le nom de l’instance et le premier compte admin.
docker compose up -d
docker compose logs -f server
Sécurité : Forgejo ne termine pas le TLS lui-même, donc une instance exposée publiquement a quand même besoin d’un reverse proxy devant elle, comme Nginx Proxy Manager ou Caddy, ou doit rester hors d’internet derrière un outil de réseau privé comme Tailscale. Le fichier docker-compose ci-dessus relie ./forgejo au conteneur par UID et GID, pas par nom de dossier : vérifiez donc ces droits avant d’exposer quoi que ce soit publiquement, le guide d’installation de Forgejo prévenant sans détour que le conteneur peut échouer à démarrer si ce n’est pas le cas.
Forgejo vs Gitea : ce qui a vraiment changé
Les deux projets partagent toujours un code d’origine commun et, pour l’instant, l’essentiel du même socle fonctionnel : pull requests, tickets, registre de paquets, CI/CD via Actions avec un YAML compatible GitHub Actions. Ce qui a divergé depuis octobre 2022, c’est tout ce qui entoure ce code : qui le possède, comment les contributions sont gérées, et comment chaque projet traite la divulgation des failles de sécurité et les tests.
| Forgejo | Gitea | |
|---|---|---|
| Gouvernance | Codeberg e.V., à but non lucratif | Gitea Ltd, à but lucratif |
| Licence | GPL v3+ depuis la v9.0 ; MIT avant | MIT de bout en bout |
| Politique envers les contributeurs | Pas de cession de copyright exigée | Cession de copyright exigée, même pour du code MIT |
| Outillage de développement | Auto-hébergé sur Codeberg, Woodpecker CI, Matrix | GitHub, GitHub Actions, Crowdin |
| Préavis de sécurité | Ouvert à des tiers validés | Réservé aux clients payants |
| Fédération des forges | Développement actif (expérimental) | Aucun travail connu |
Une partie de cette comparaison reste la mise en scène que fait Forgejo d’un différend où il n’est clairement pas neutre. Mais les affirmations précises qui la sous-tendent se vérifient sur les propres pages de Gitea : sa politique de contribution exige bien une cession de copyright, même pour du code sous licence MIT, et son préavis de sécurité anticipé est bien réservé aux clients payants. En revanche, la séparation de gouvernance et de licence, elle, n’est pas de la mise en scène. Gitea Ltd possède les noms de domaine et la marque de Gitea ; Codeberg e.V., une association à but non lucratif, possède ceux de Forgejo.
- Gouvernance à but non lucratif sous Codeberg e.V., avec un processus de décision propre à Forgejo qui reste indépendant du fonctionnement quotidien de Codeberg
- Licence copyleft (GPL v3+) adoptée précisément pour rendre plus difficile un scénario à la Gitea qui viserait Forgejo lui-même
- Aucune cession de copyright exigée des contributeurs, contrairement à la politique de Gitea
- Préavis de sécurité ouvert à tout tiers validé, plutôt que réservé à un palier payant
- Travail actif sur la fédération des forges via ActivityPub, une fonctionnalité que Gitea ne propose pas actuellement
- Plus un remplacement direct garanti face aux versions récentes de Gitea depuis le hard fork de 2024 ; seul le chemin de mise à niveau depuis Gitea est testé
- Pas de binaires Windows officiels ; le support a été abandonné en 2024, faute d’expertise suffisante côté mainteneurs pour continuer à le tester et le packager
- La fédération des forges est explicitement expérimentale, et Forgejo prévient qu’un changement cassant pourrait « griller » définitivement l’identité ActivityPub d’un domaine
- Plus jeune et plus petit que Gitea, lui-même plus petit que GitHub ou GitLab
Matériel : Forgejo est né du code Go de Gitea et conserve la même architecture en binaire unique avec SQLite par défaut ; rien ne justifie donc structurellement plus que les 2 cœurs CPU et le Go de RAM documentés par Gitea pour une petite instance. Forgejo ne publie pas sa propre page de configuration matérielle minimale : ce chiffre reste donc une déduction à partir de l’architecture partagée, pas une donnée que Forgejo affirme lui-même. Notre guide auto-hébergement homelab pour débutants couvre le choix de cette première machine.
Accéder à une instance Forgejo auto-hébergée depuis l’extérieur fonctionne comme pour n’importe quel autre service de homelab : un reverse proxy pour un vrai domaine HTTPS, ou un outil de réseau privé si l’exposition publique n’en vaut pas la peine. Nos fiches Nginx Proxy Manager et Caddy couvrent la voie du reverse proxy, et Tailscale celle qui évite complètement l’exposition publique. Les trois mêmes options s’appliquent, que ce soit Gitea ou Forgejo qui tourne derrière.
FAQ
Forgejo est-il gratuit et open source ?
Oui. Forgejo v9.0 et versions suivantes sont sous GPL v3+ ; les versions jusqu’à la v8.0 étaient en MIT. Les deux sont libres pour tout usage, y compris commercial et hébergement payant pour des tiers.
Forgejo est-il un remplacement direct de Gitea ?
Il a été conçu comme tel au moment du fork de 2022, et la mise à niveau directe d’une installation Gitea existante vers Forgejo reste testée et prise en charge. Mais depuis que Forgejo est devenu un hard fork début 2024, une compatibilité totale et continue avec les nouvelles versions de Gitea n’est plus garantie.
Peut-on migrer une installation Gitea existante vers Forgejo ?
Oui. La documentation officielle de mise à niveau de Forgejo couvre directement ce cas et exécute automatiquement les migrations de base de données nécessaires, même en sautant plusieurs versions. Forgejo recommande de basculer directement plutôt que de continuer à mettre à jour Gitea une fois la migration décidée.
Quelle est la vraie différence entre Forgejo et Gitea ?
Surtout la gouvernance et la licence, pas les fonctionnalités. Forgejo fonctionne sous l’association à but non lucratif Codeberg e.V. et est passé en GPL v3+ ; Gitea reste contrôlé par la société à but lucratif Gitea Ltd et reste en MIT. Forgejo n’exige pas non plus de cession de copyright de la part des contributeurs, contrairement à Gitea, qui l’impose même pour des contributions sous licence MIT.
Forgejo tourne-t-il sous Windows ?
Pas officiellement. Forgejo a abandonné les binaires Windows en 2024, invoquant un manque d’expertise côté mainteneurs pour continuer à les tester et les packager correctement. Une version Windows du Forgejo runner, son agent de CI/CD, existe séparément, construite par la communauté.
Pour qui fait déjà tourner Gitea sans problème, rien de tout cela n’est urgent : les deux restent assez proches sous le capot pour qu’un changement ne s’impose pas. Pour une installation neuve, tout revient à savoir si une gouvernance à but non lucratif et une licence copyleft valent le coup de choisir un projet plus jeune et plus petit face à Gitea.