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

176
docs/02-installation.md Normal file
View File

@ -0,0 +1,176 @@
# Guide d'installation
## Prerequis
- Docker et Docker Compose installes
- Acces SSH au serveur
- Domaines configures : `git.syoul.fr`, `ci.syoul.fr`
## Ordre de deploiement
**IMPORTANT** : Respecter l'ordre suivant pour eviter les problemes de dependances.
```
1. Reseau Docker (si non existant)
2. PostgreSQL (base de donnees)
3. Gitea (serveur Git)
4. Consul (service discovery) [optionnel]
5. Registrator (auto-registration) [optionnel]
6. Woodpecker (CI/CD)
```
## Etape 1 : Creer le reseau Docker
Si le reseau n'existe pas :
```bash
docker network create gitgit_syoul_fr_gitea_net
```
Verifier :
```bash
docker network ls | grep gitea
```
## Etape 2 : Deployer PostgreSQL
```bash
cd /opt/postgres
docker compose up -d
docker logs gitea_db
```
Verifier :
```bash
docker exec gitea_db pg_isready -U gitea
```
## Etape 3 : Deployer Gitea
```bash
cd /opt/gitea
docker compose up -d
docker logs gitea
```
Verifier :
```bash
curl -s http://localhost:3300/api/v1/version
```
## Etape 4 : Deployer Consul (optionnel)
```bash
cd /opt/consul
docker compose up -d
docker logs consul
```
Verifier :
```bash
# UI accessible
curl -s http://localhost:8500/v1/status/leader
# DNS fonctionne
dig @localhost -p 8600 consul.service.consul
```
## Etape 5 : Deployer Registrator (optionnel)
**Prerequis** : Consul doit etre demarre et accessible.
```bash
cd /opt/registrator
docker compose up -d
docker logs registrator
```
Verifier :
```bash
# Les services apparaissent dans Consul
curl -s http://localhost:8500/v1/catalog/services | python3 -m json.tool
```
## Etape 6 : Deployer Woodpecker
```bash
cd /opt/woodpecker
docker compose up -d
docker logs woodpecker-server
docker logs woodpecker-agent
```
Verifier :
```bash
curl -s http://localhost:9001/api/info
```
## Verification finale
### Tous les conteneurs sont en cours d'execution
```bash
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
```
Resultat attendu :
```
NAMES STATUS PORTS
consul Up X minutes 0.0.0.0:8500->8500/tcp, ...
registrator Up X minutes
woodpecker-agent Up X minutes 3000/tcp
woodpecker-server Up X minutes 0.0.0.0:9001->8000/tcp, ...
gitea Up X minutes 0.0.0.0:3300->3000/tcp, ...
gitea_db Up X minutes 5432/tcp
```
### Services enregistres dans Consul
```bash
curl -s http://localhost:8500/v1/catalog/services
```
### Test de connexion OAuth2
1. Acceder a https://ci.syoul.fr
2. Cliquer sur "Se connecter avec git.syoul.fr"
3. S'authentifier sur Gitea
4. Autoriser l'application Woodpecker
5. Etre redirige vers le dashboard Woodpecker
## Commandes de maintenance
### Redemarrer un service
```bash
cd /opt/[service]
docker compose restart
```
### Voir les logs
```bash
docker logs -f [nom-conteneur]
```
### Mettre a jour un service
```bash
cd /opt/[service]
docker compose pull
docker compose up -d
```
### Sauvegarder PostgreSQL
```bash
docker exec gitea_db pg_dump -U gitea gitea > backup_$(date +%Y%m%d_%H%M%S).sql
```