Initial vault setup
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user