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)