- 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
149 lines
3.9 KiB
Markdown
149 lines
3.9 KiB
Markdown
# 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](01-architecture.md) - Vue d'ensemble de l'infrastructure
|
|
2. [Installation](02-installation.md) - Guide d'installation complet
|
|
|
|
### Configuration des services
|
|
|
|
3. [Gitea](03-configuration-gitea.md) - Serveur Git auto-heberge
|
|
4. [Woodpecker](04-configuration-woodpecker.md) - CI/CD
|
|
5. [PostgreSQL](05-configuration-postgresql.md) - Base de donnees
|
|
|
|
### Service Discovery (optionnel, mode production)
|
|
|
|
6. [Consul](06-configuration-consul.md) - Service discovery avec ACL
|
|
7. [Registrator](07-configuration-registrator.md) - Auto-registration Docker avec token
|
|
8. [Deploiement Consul](08-deploiement-consul-registrator.md) - Guide de deploiement securise
|
|
|
|
### Deploiement d'applications
|
|
|
|
9. [Deploiement Applications](09-deploiement-applications.md) - Deploiement avec URLs dynamiques
|
|
10. [Nginx Proxy Manager](10-configuration-nginx-proxy-manager.md) - 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
|
|
|
|
```bash
|
|
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
|
|
```
|
|
|
|
### Logs d'un service
|
|
|
|
```bash
|
|
docker logs -f [nom-conteneur]
|
|
```
|
|
|
|
### Redemarrer un service
|
|
|
|
```bash
|
|
cd /opt/[service]
|
|
docker compose restart
|
|
```
|
|
|
|
### Sauvegarder la base de donnees
|
|
|
|
```bash
|
|
docker exec gitea_db pg_dump -U gitea gitea > backup_$(date +%Y%m%d).sql
|
|
```
|
|
|
|
### Sauvegarder Consul
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
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
|
|
|
|
- **Administrateur** : syoul
|
|
- **Email** : contact@anuanua.fr
|