Forgejo est une forge logicielle self-hosted, légère et 100 % libre, conçue pour héberger des dépôts Git avec gestion de projet, CI/CD et registre de paquets intégrés. Fork communautaire de Gitea créé en 2022, Forgejo est porté par une communauté indépendante sous l’égide de Codeberg e.V., une association à but non lucratif allemande. Avec un binaire unique consommant moins de 200 Mo de RAM, c’est l’une des forges les plus légères du marché — tout en offrant un périmètre fonctionnel comparable à GitHub.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Comprendre ce qu’est Forgejo : son origine, sa gouvernance communautaire et sa licence
- Connaître les fonctionnalités principales : dépôts Git, CI/CD, registre de paquets, fédération
- Identifier la stack technique : un binaire Go unique, bases de données supportées, composants
- Comparer Forgejo à Gitea et aux autres forges : différences concrètes de gouvernance et de fonctionnalités
- Évaluer si Forgejo convient à votre contexte (ressources, conformité, philosophie)
Origine et gouvernance
Section intitulée « Origine et gouvernance »Forgejo est né en octobre 2022 après que Gitea Ltd. a été créée en tant qu’entreprise commerciale, suscitant des inquiétudes dans la communauté open-source. Un groupe de contributeurs a forké Gitea pour garantir que le projet reste libre et gouverné collectivement.
Le projet est placé sous la tutelle de Codeberg e.V., une association à but non lucratif enregistrée à Berlin. Codeberg détient les domaines et fournit l’infrastructure, mais la gouvernance technique reste indépendante et définie collectivement par les contributeurs.
| Aspect | Détail |
|---|---|
| Création | Octobre 2022 (fork de Gitea) |
| Organisation | Codeberg e.V. (association à but non lucratif, Berlin) |
| Gouvernance | Collective, définie par les contributeurs |
| Licence | GPL v3+ (depuis v9.0 ; MIT pour les versions antérieures) |
| Code source | codeberg.org/forgejo/forgejo |
| Financement | Bénévolat, dons (Liberapay), subventions, contrats de service |
Stack technologique
Section intitulée « Stack technologique »Forgejo est un binaire unique écrit en Go qui embarque tous les composants nécessaires.
| Composant | Technologie | Rôle |
|---|---|---|
| Serveur web | Go (Chi) | Interface web, API REST, serveur Git HTTP/SSH |
| ORM | XORM | Abstraction base de données |
| Base de données | SQLite, PostgreSQL, MySQL/MariaDB | Stockage des métadonnées (projets, utilisateurs, issues) |
| Indexeur de code | Bleve (intégré) ou Meilisearch | Recherche full-text dans le code et les issues |
| File de messages | En mémoire ou Redis | Gestion des tâches asynchrones (webhooks, emails) |
| UI | Vue 3, Fomantic UI | Interface utilisateur web |
| CI/CD | Forgejo Runner (Go) | Exécution des workflows Forgejo Actions |
Fonctionnalités principales
Section intitulée « Fonctionnalités principales »Hébergement Git et revue de code
Section intitulée « Hébergement Git et revue de code »- Dépôts Git avec interface web, éditeur en ligne et visualisation de diff
- Pull requests avec revue de code en ligne, discussions et approbations
- Branches protégées avec règles de merge configurables
- Miroir de dépôts (pull et push) depuis/vers d’autres forges
- Signature GPG/SSH des commits
CI/CD — Forgejo Actions
Section intitulée « CI/CD — Forgejo Actions »- Workflows YAML compatibles avec la syntaxe GitHub Actions
- Forgejo Runner : exécuteur léger en Go (shell, Docker, LXC)
- Réutilisation d’Actions existantes : la plupart des Actions GitHub fonctionnent directement
- Téléchargement d’Actions depuis n’importe quel dépôt Git (pas uniquement GitHub)
Gestion de projet
Section intitulée « Gestion de projet »- Issues avec labels, milestones, assignations et suivi de temps
- Tableaux Kanban (boards de projet)
- Wiki intégré par dépôt
- Webhooks vers Slack, Discord, Matrix, Mattermost et endpoints personnalisés
Registre de paquets
Section intitulée « Registre de paquets »- Container Registry (images OCI/Docker)
- Package Registry compatible : npm, PyPI, Maven, NuGet, Cargo, Composer, Conda, Helm, RubyGems, Conan, Pub, Vagrant et plus de 20 formats
Fédération (expérimentale)
Section intitulée « Fédération (expérimentale) »- ActivityPub / ForgeFed : Forgejo travaille activement sur la fédération entre instances
- Objectif : permettre à des forges indépendantes de collaborer (suivre des utilisateurs distants, interagir avec des dépôts d’autres instances)
- Fonctionnalité expérimentale — des changements incompatibles sont possibles
Méthodes d’installation
Section intitulée « Méthodes d’installation »| Méthode | Description | Recommandée pour |
|---|---|---|
| Binaire | Téléchargement direct depuis forgejo.org/releases | Serveurs Linux, contrôle maximal |
| Container OCI | codeberg.org/forgejo/-/packages/container/forgejo | Docker, Podman, Kubernetes |
| Packages Debian/RPM | Via les dépôts communautaires | Distributions Linux standard |
Forgejo vs Gitea : quelles différences ?
Section intitulée « Forgejo vs Gitea : quelles différences ? »Forgejo et Gitea partagent la même base de code historique, mais les projets divergent de plus en plus.
| Aspect | Forgejo | Gitea |
|---|---|---|
| Gouvernance | Communauté (Codeberg e.V.) | Entreprise (Gitea Ltd. / CommitGo Inc.) |
| Licence | GPL v3+ (depuis v9.0) | MIT |
| Offre commerciale | Aucune (services professionnels communautaires) | Gitea Cloud + Gitea Enterprise |
| Support Windows | Abandonné | Maintenu |
| Fédération ActivityPub | En développement actif | Non prioritaire |
| Certification SOC 2 | Non | Oui (CommitGo) |
| API | Compatible Gitea (divergences mineures) | API de référence |
| Migration Gitea → Forgejo | Supportée officiellement | — |
Forgejo vs GitLab CE
Section intitulée « Forgejo vs GitLab CE »| Critère | Forgejo | GitLab CE |
|---|---|---|
| RAM minimum | ~200 Mo | ~4 Go |
| CPU minimum | 1 vCPU | 2 vCPU |
| Installation | 1 binaire | Package Omnibus (~1 Go) |
| CI/CD | Forgejo Actions (compatible GitHub Actions) | GitLab CI (syntaxe propriétaire) |
| SAST/DAST | Non intégré | Intégré (Ultimate) |
| Registre de paquets | 20+ formats | 10+ formats |
| Gestion de portefeuille | Non | Epics, Milestones (Premium+) |
| Complexité opérationnelle | Faible | Élevée |
À retenir
Section intitulée « À retenir »- Forgejo est une forge Git self-hosted légère, 100 % libre (GPL v3+), portée par une communauté indépendante sous Codeberg e.V.
- Fork de Gitea depuis 2022, motivé par la volonté de préserver une gouvernance communautaire face à la commercialisation de Gitea
- Un binaire unique en Go qui embarque serveur web, Git, base de données (SQLite possible) et indexeur
- Empreinte minimale : ~200 Mo RAM, fonctionne sur un Raspberry Pi
- Forgejo Actions pour le CI/CD, compatible avec la syntaxe GitHub Actions
- Registre de paquets intégré (Docker, npm, PyPI, Maven et 20+ formats)
- La fédération (ActivityPub/ForgeFed) est la fonctionnalité phare en développement, absente chez Gitea et GitLab
- Migration depuis Gitea supportée officiellement (remplacement du binaire)