WikiJs/outils-devops/forgejo.md
2025-07-08 20:59:14 +00:00

144 lines
No EOL
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: ForgeJo
description:
published: true
date: 2025-06-30T21:20:00.242Z
tags:
editor: markdown
dateCreated: 2025-06-30T21:13:11.036Z
---
## ✨ Fonctionnalités principales Forgejo
* 🧑‍💻 Gestion complète de dépôts Git (pull requests, branches, tags…)
* 🔐 Contrôle daccès et gestion fine des permissions
* 👥 Organisation en équipes, utilisateurs, organisations
* 📨 Intégration webhooks, notifications, et CI (Actions)
* 🌍 Interface Web responsive et multilingue
* 🔌 API REST et support OAuth2
---
## 🧾 Prérequis
Avant de commencer, assurez-vous davoir :
* Docker et Docker Compose installés sur votre système.
* Un réseau Docker nommé `traefik_net` (créé au préalable si nécessaire).
* Un fichier `.env` contenant les variables suivantes :
```dotenv
SERVICE=forgejo
SERVICE_DB=forgejo_db
DB_NAME=forgejo
DB_USER=forgejo
DB_PASSWORD=motdepassefort
URL=git.mondomaine.tld
```
> 🔐 **Conseil sécurité :** Ne versionnez jamais vos fichiers `.env`.
---
## ⚙️ Fichier `docker-compose.yml`
Créez un fichier `docker-compose.yml` avec ce contenu :
```yaml
services:
forgejo_db:
image: postgres:16
container_name: ${SERVICE_DB}
restart: unless-stopped
environment:
- POSTGRES_DB=${DB_NAME}
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASSWORD}
networks:
- forgejo_net
volumes:
- ./data-db:/var/lib/postgresql/data
forgejo:
image: codeberg.org/forgejo/forgejo:11
container_name: ${SERVICE}
restart: unless-stopped
depends_on:
- forgejo_db
environment:
- USER_UID=1000
- USER_GID=1000
- FORGEJO__database__DB_TYPE=postgres
- FORGEJO__database__HOST=${SERVICE_DB}
- FORGEJO__database__NAME=${DB_NAME}
- FORGEJO__database__USER=${DB_USER}
- FORGEJO__database__PASSWD=${DB_PASSWORD}
networks:
- forgejo_net
- traefik_net
volumes:
- ./data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.${SERVICE}.rule=Host(`git.blasseye.fr`)"
- "traefik.http.routers.${SERVICE}.entrypoints=web"
- "traefik.http.services.${SERVICE}.loadbalancer.server.port=3000"
- "traefik.docker.network=traefik_net"
networks:
forgejo_net:
name: forgejo_net
driver: bridge
traefik_net:
external: true
```
---
## 🚀 Démarrage
Démarrez les conteneurs avec :
```bash
docker compose up -d
```
Accédez à votre instance Forgejo via le domaine défini dans `$URL`.
> 🧠 Premier démarrage : vous devrez finaliser la configuration via l'interface web. Vérifiez que les paramètres de la base sont bien ceux du `.env`.
---
## 📁 Arborescence
```
forgejo/
├── docker-compose.yml
├── .env
├── data/
└── data-db/
```
---
## 🧼 Nettoyage
Arrêter et supprimer les conteneurs :
```bash
docker compose down
```
---
## 📚 Ressources utiles
* [Documentation officielle Forgejo](https://forgejo.org/docs/latest/)
* [Image Docker Forgejo](https://codeberg.org/forgejo/-/packages/container/forgejo/11)
* [Comparatif Gitea vs Forgejo](https://forgejo.org/compare-to-gitea/)
---