---
title: Forgejo
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, development, forge, git, git-hosting, open-source]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Development, https://forgejo.org/]
---

# 💻 Forgejo

> **Forge Git communautaire fork de Gitea**, auto-hébergeable, légère, avec une gouvernance plus saine et une garantie 100% open source.

## 📋 Informations Générales

| Champ | Valeur |
| :--- | :--- |
| **Site web** | [forgejo.org](https://forgejo.org/) |
| **GitHub (mirror)** | [go-forge/forgejo](https://github.com/go-forge/forgejo) |
| **Dépôt principal** | [codeberg/forgejo](https://codeberg.org/forgejo/forgejo) |
| **License** | MIT |
| **Langage** | Go |
| **Étoiles GitHub** | 4 866 ⭐ (mirror) |
| **Catégorie** | [[cat-development\|Development]] |
| **Note** | ⚠️ **Fork de Gitea créé en 2022** par la communauté quand Gitea Inc. a tenté une bascule propriétaire. Forgejo garantit **gouvernance communautaire, transparente, et 100% open source**. C'est la forge utilisée par **Codeberg.org**. |

## 📝 Description

**Forgejo** est une **forge Git self-hosted** légère, issue d'un fork de **Gitea** début 2023. La séparation d'avec Gitea est intervenue quand la société Gitea Inc. a tenté de basculer certaines éditions en **licence propriétaire** — la communauté a répondu en forgeant Forgejo pour préserver la liberté du logiciel.

**Points clés** :

- **Gouvernance communautaire** : décisions prises par un *Forgejo Committee* (pas une entreprise)
- **100% open source** : licence MIT, pas de "open core"
- **Compatibilité Gitea** : migration triviale (1 commande), même API REST
- **Léger** : binaire Go unique, ~512 Mo de RAM pour une instance petite
- **Multi-plateforme** : Linux, ARM (Raspberry Pi), Windows, macOS

**Fonctionnalités** :

- **Dépôts Git** : branches, tags, releases, protection de branches
- **Pull/Merge requests** : code review, approvals, conversations
- **CI/CD** : **Forgejo Actions** (compatible GitHub Actions)
- **Container & Package Registry** : images OCI, npm, Maven, PyPI…
- **Pages statiques**, wiki, issue tracker, milestones
- **OAuth2, OIDC, LDAP** : auth enterprise
- **Webhooks** : intégration Slack, Discord, [[app-woodpecker-ci]]…

**Différence avec Gitea** : gouvernance communautaire, pas de risque de basculement propriétaire.

**Différence avec GitLab** : **beaucoup plus léger** (1 Go RAM vs 8+), moins de features, mais **plus rapide et plus simple**.

## 🚀 Installation

### Via Docker Compose (recommandé)

```yaml
# docker-compose.yml
version: '3.8'
services:
  forgejo:
    image: codeberg/forgejo:8
    container_name: forgejo
    restart: unless-stopped
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - FORGEJO__server__DOMAIN=forgejo.example.com
      - FORGEJO__server__SSH_DOMAIN=forgejo.example.com
      - FORGEJO__server__ROOT_URL=https://forgejo.example.com
    volumes:
      - forgejo-data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "2222:22"
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.forgejo.rule=Host(`forgejo.example.com`)"
      - "traefik.http.routers.forgejo.entrypoints=websecure"
      - "traefik.http.services.forgejo.loadbalancer.server.port=3000"
    networks:
      - proxy

  forgejo-db:
    image: postgres:15
    container_name: forgejo-db
    restart: unless-stopped
    environment:
      - POSTGRES_USER=forgejo
      - POSTGRES_PASSWORD=***      - POSTGRES_DB=forgejo
    volumes:
      - forgejo-db:/var/lib/postgresql/data
    networks:
      - proxy

volumes:
  forgejo-data:
  forgejo-db:

networks:
  proxy:
    external: true
```

### Binaire standalone

```bash
wget -O forgejo https://codeberg.org/forgejo/forgejo/releases/download/v8.0.0/forgejo-8.0.0-linux-amd64
chmod +x forgejo
sudo mv forgejo /usr/local/bin/
```

## ⚙️ Configuration

1. **Premier accès** : `https://forgejo.example.com` → assistant de configuration
2. **Compte admin** : créé via l'UI, ou via CLI `forgejo admin user create`
3. **SMTP** : configurer dans `app.ini` (`[mailer]`)
4. **Auth OIDC** : intégration native avec [[app-authentik]] / Keycloak
5. **Runners Actions** : ajouter des runners via docker-compose séparé
6. **Backups** : `forgejo dump` (chiffrement inclus)
7. **Migrer depuis Gitea** : `forgejo admin user migrate-from-gitea`

## 🔗 Alternatives

- **[[app-gitea]]** — Origine du fork, désormais **risc propriétaire** (à éviter)
- **[[app-gitlab]]** — Beaucoup plus lourd, plus de features
- **[[app-woodpecker-ci]] + Forgejo** — CI/CD externe couplé à la forge
- **OneDev** — Concurrent Java, all-in-one
- **Gogs** — Ancêtre, moins maintenu
- **Sourcehut** — Pas self-hosted
- **Radicle** — P2P, décentralisé, plus expérimental

## 🔒 Sécurité

- **HTTPS obligatoire** (Traefik, Let's Encrypt)
- **2FA** activable (TOTP, WebAuthn)
- **SSH keys** par utilisateur (FP de l'empreinte obligatoire)
- **GPG signed commits** : supporté et vérifiable
- **Auth OIDC/SAML** : recommandé pour organisations
- **Webhooks secrets** : signer les payloads sortants
- **Backups chiffrés** : `forgejo dump` puis chiffrement GPG
- **Audit log** : activable dans `app.ini`
- **Runners Actions isolés** : un runner = un conteneur

## 📚 Ressources

- [Documentation officielle](https://forgejo.org/docs/latest/)
- [Site du projet](https://forgejo.org/)
- [Forgejo vs Gitea — l'histoire](https://forgejo.org/compare-to-gitea/)
- [Codeberg (instance publique)](https://codeberg.org/)

## 🔗 Pages Liées

- [[cat-development]] — Catégorie Development
- [[app-gitea]] — Origine du fork (à éviter désormais)
- [[app-woodpecker-ci]] — CI/CD complémentaire
- [[app-traefik]] — Reverse proxy
- [[securisation-home-lab]] — Bonnes pratiques
- [[recettes-docker-compose]] — Templates Docker
