Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
+162
View File
@@ -0,0 +1,162 @@
---
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