3.6 KiB
3.6 KiB
Documentation Infrastructure Git CI/CD
Cette documentation couvre l'installation, la configuration et la maintenance de l'infrastructure Git et CI/CD.
Index
Architecture et Installation
- Architecture - Vue d'ensemble de l'infrastructure
- Installation - Guide d'installation complet
Configuration des services
- Gitea - Serveur Git auto-heberge
- Woodpecker - CI/CD
- PostgreSQL - Base de donnees
Service Discovery (optionnel, mode production)
- Consul - Service discovery avec ACL
- Registrator - Auto-registration Docker avec token
- Deploiement Consul - Guide de deploiement securise
Stack technique
| Composant | Version | Description |
|---|---|---|
| Gitea | latest | Serveur Git |
| Woodpecker | latest | CI/CD |
| PostgreSQL | 14 | Base de donnees |
| Consul | latest | Service discovery avec ACL |
| Registrator | latest | Auto-registration avec token |
Mode production
Cette infrastructure est configuree pour la production avec :
- ACL Consul : Controle d'acces active (
default_policy: deny) - Tokens separes : Token admin et token Registrator
- Secrets non versionnes : Fichiers
.enva creer sur le serveur
Fichiers de secrets (non versionnes)
| Fichier | Contenu |
|---|---|
/opt/consul/.env |
Token administrateur Consul |
/opt/registrator/.env |
Token Registrator |
URLs d'acces
| Service | URL |
|---|---|
| Gitea | http://git.syoul.fr |
| Woodpecker | https://ci.syoul.fr |
| Consul UI | http://[serveur]:8500 (local, token requis) |
Structure des dossiers
/opt/
consul/
docker-compose.yml
env.template # Template pour .env
.env # Token admin (a creer, non versionne)
gitea/
docker-compose.yml
gitea.env
postgres/
docker-compose.yml
registrator/
docker-compose.yml
env.template # Template pour .env
.env # Token Registrator (a creer, non versionne)
woodpecker/
docker-compose.yml
Reseau Docker
Tous les services utilisent le reseau : gitgit_syoul_fr_gitea_net
Commandes rapides
Etat des services
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
Logs d'un service
docker logs -f [nom-conteneur]
Redemarrer un service
cd /opt/[service]
docker compose restart
Sauvegarder la base de donnees
docker exec gitea_db pg_dump -U gitea gitea > backup_$(date +%Y%m%d).sql
Sauvegarder Consul
export CONSUL_TOKEN="votre-token-admin"
docker exec consul consul snapshot save /consul/data/backup.snap -token "$CONSUL_TOKEN"
docker cp consul:/consul/data/backup.snap ./consul_backup_$(date +%Y%m%d).snap
Lister les services Consul
export CONSUL_TOKEN="votre-token-admin"
curl -s -H "X-Consul-Token: $CONSUL_TOKEN" http://localhost:8500/v1/catalog/services
Securite
Bonnes pratiques appliquees
- ACL Consul : Tout est interdit par defaut
- Tokens separes : Chaque service a son propre token
- Secrets non versionnes : Les fichiers
.envne sont pas dans git - Permissions fichiers :
chmod 600sur les fichiers.env
A faire sur le serveur
- Ne pas exposer le port 8500 sur Internet
- Configurer un firewall
- Rotation periodique des tokens
Contacts et support
- Administrateur : syoul
- Email : contact@anuanua.fr