Files
infrastructure/docs/README.md
syoul 9132aeb5d1 feat: ajout documentation Nginx Proxy Manager et scripts de déploiement
- Documentation complète pour Nginx Proxy Manager (docs/10-configuration-nginx-proxy-manager.md)
- Script get-npm-token.sh pour générer automatiquement les tokens API
- Exemple complet de .woodpecker.yml avec logique inline de déploiement
- Documentation déploiement applications avec URLs dynamiques (docs/09-deploiement-applications.md)
- Script deploy.sh comme alternative optionnelle
- Mise à jour README avec références aux nouvelles documentations
2025-12-24 18:14:48 +01:00

3.9 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

  1. Architecture - Vue d'ensemble de l'infrastructure
  2. Installation - Guide d'installation complet

Configuration des services

  1. Gitea - Serveur Git auto-heberge
  2. Woodpecker - CI/CD
  3. PostgreSQL - Base de donnees

Service Discovery (optionnel, mode production)

  1. Consul - Service discovery avec ACL
  2. Registrator - Auto-registration Docker avec token
  3. Deploiement Consul - Guide de deploiement securise

Deploiement d'applications

  1. Deploiement Applications - Deploiement avec URLs dynamiques
  2. Nginx Proxy Manager - Configuration reverse proxy et API

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
Nginx Proxy Manager latest Reverse proxy avec API

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 .env a 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

  1. ACL Consul : Tout est interdit par defaut
  2. Tokens separes : Chaque service a son propre token
  3. Secrets non versionnes : Les fichiers .env ne sont pas dans git
  4. Permissions fichiers : chmod 600 sur 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