Files
infrastructure/docs/02-installation.md

3.0 KiB

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 :

docker network create gitgit_syoul_fr_gitea_net

Verifier :

docker network ls | grep gitea

Etape 2 : Deployer PostgreSQL

cd /opt/postgres
docker compose up -d
docker logs gitea_db

Verifier :

docker exec gitea_db pg_isready -U gitea

Etape 3 : Deployer Gitea

cd /opt/gitea
docker compose up -d
docker logs gitea

Verifier :

curl -s http://localhost:3300/api/v1/version

Etape 4 : Deployer Consul (optionnel)

cd /opt/consul
docker compose up -d
docker logs consul

Verifier :

# 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.

cd /opt/registrator
docker compose up -d
docker logs registrator

Verifier :

# Les services apparaissent dans Consul
curl -s http://localhost:8500/v1/catalog/services | python3 -m json.tool

Etape 6 : Deployer Woodpecker

cd /opt/woodpecker
docker compose up -d
docker logs woodpecker-server
docker logs woodpecker-agent

Verifier :

curl -s http://localhost:9001/api/info

Verification finale

Tous les conteneurs sont en cours d'execution

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

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

cd /opt/[service]
docker compose restart

Voir les logs

docker logs -f [nom-conteneur]

Mettre a jour un service

cd /opt/[service]
docker compose pull
docker compose up -d

Sauvegarder PostgreSQL

docker exec gitea_db pg_dump -U gitea gitea > backup_$(date +%Y%m%d_%H%M%S).sql