Initial commit: Infrastructure Git CI/CD avec Gitea, Woodpecker, PostgreSQL, Consul et Registrator

This commit is contained in:
2025-12-23 20:11:09 +01:00
commit de02fb28ca
20 changed files with 2685 additions and 0 deletions

View File

@ -0,0 +1,160 @@
# Configuration Gitea
## Fichiers de configuration
- `gitea/docker-compose.yml` : Configuration Docker Compose
- `gitea/gitea.env` : Variables d'environnement
## Configuration actuelle
### docker-compose.yml
```yaml
services:
gitea:
container_name: gitea
image: gitea/gitea:latest
restart: always
env_file:
- gitea.env
networks:
- gitgit_syoul_fr_gitea_net
volumes:
- gitgit_syoul_fr_gitea_data:/data
ports:
- "3300:3000" # Web UI
- "2222:22" # SSH
volumes:
gitgit_syoul_fr_gitea_data:
external: true
networks:
gitgit_syoul_fr_gitea_net:
external: true
```
### Variables d'environnement (gitea.env)
| Variable | Valeur | Description |
|----------|--------|-------------|
| `USER_UID` | 1000 | UID de l'utilisateur Gitea |
| `USER_GID` | 1000 | GID de l'utilisateur Gitea |
| `GITEA__database__DB_TYPE` | postgres | Type de base de donnees |
| `GITEA__database__HOST` | gitea_db:5432 | Hote de la base de donnees |
| `GITEA__database__NAME` | gitea | Nom de la base de donnees |
| `GITEA__database__USER` | gitea | Utilisateur de la base de donnees |
| `GITEA__database__PASSWD` | *** | Mot de passe de la base de donnees |
| `GITEA__server__DOMAIN` | git.syoul.fr | Domaine public |
| `GITEA__server__PROTOCOL` | http | Protocole interne |
| `GITEA__server__ROOT_URL` | http://git.syoul.fr/ | URL racine publique |
| `GITEA__server__HTTP_PORT` | 3000 | Port HTTP interne |
## Configuration OAuth2 pour Woodpecker
### Creer l'application OAuth2
1. Se connecter a Gitea en tant qu'administrateur
2. Aller dans **Parametres utilisateur** > **Applications**
3. Sous "Gerer les applications OAuth2", creer une nouvelle application :
- **Nom** : `Woodpecker CI`
- **URI de redirection** : `https://ci.syoul.fr/authorize`
- **Client confidentiel** : Oui
4. Noter le **Client ID** et le **Client Secret**
### Configurer Woodpecker
Dans `woodpecker/docker-compose.yml`, utiliser :
```yaml
environment:
WOODPECKER_GITEA_CLIENT: "votre-client-id"
WOODPECKER_GITEA_SECRET: "votre-client-secret"
```
## Configuration des webhooks
### Autoriser les webhooks locaux
Dans Gitea, ajouter dans `app.ini` ou via variables d'environnement :
```ini
[webhook]
ALLOWED_HOST_LIST = external,loopback,private
```
Via docker-compose :
```yaml
environment:
GITEA__webhook__ALLOWED_HOST_LIST: external,loopback,private
```
### Configurer le webhook automatique
Woodpecker configure automatiquement les webhooks lors de l'activation d'un depot. Verifier dans :
**Depot** > **Parametres** > **Webhooks**
## Maintenance
### Sauvegarder Gitea
```bash
# Sauvegarder le volume de donnees
docker run --rm -v gitgit_syoul_fr_gitea_data:/data -v $(pwd):/backup alpine tar cvzf /backup/gitea_backup_$(date +%Y%m%d).tar.gz /data
# Sauvegarder la base de donnees
docker exec gitea_db pg_dump -U gitea gitea > gitea_db_$(date +%Y%m%d).sql
```
### Mettre a jour Gitea
```bash
cd /opt/gitea
docker compose pull
docker compose up -d
```
### Logs
```bash
docker logs gitea -f
```
## Depannage
### Erreur de connexion a la base de donnees
Verifier que PostgreSQL est accessible :
```bash
docker exec gitea_db pg_isready -U gitea
```
Verifier le reseau :
```bash
docker exec gitea ping -c 2 gitea_db
```
### Erreur OAuth2 "Client ID not registered"
1. Verifier que l'application OAuth2 existe dans Gitea
2. Verifier que le Client ID dans Woodpecker correspond
3. Verifier que l'URI de redirection est correcte
### Problemes d'envoi d'emails
Verifier les logs :
```bash
docker logs gitea 2>&1 | grep -i mail
```
Tester la connexion SMTP :
```bash
docker exec gitea curl -v telnet://mail.anuanua.fr:465
```