Initial commit: Infrastructure Git CI/CD avec Gitea, Woodpecker, PostgreSQL, Consul et Registrator
This commit is contained in:
176
docs/02-installation.md
Normal file
176
docs/02-installation.md
Normal 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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user