Initial commit: Infrastructure Git CI/CD avec Gitea, Woodpecker, PostgreSQL, Consul et Registrator

This commit is contained in:
2025-12-23 20:11:09 +01:00
commit de02fb28ca
20 changed files with 2685 additions and 0 deletions

100
postgres/README.md Normal file
View File

@ -0,0 +1,100 @@
# Configuration PostgreSQL pour Gitea
Ce dossier contient la configuration Docker Compose pour pérenniser le conteneur PostgreSQL de Gitea.
## Configuration actuelle
- **Image** : `postgres:14`
- **Nom du conteneur** : `gitea_db`
- **Volume** : `gitgit_syoul_fr_db_data` (existant, ne sera pas recréé)
- **Réseau** : `gitgit_syoul_fr_gitea_net` (existant, ne sera pas recréé)
- **Restart policy** : `always`
## Utilisation
### Vérifier la configuration
```bash
cd /opt/postgres # ou le chemin où vous avez copié ce fichier
docker compose config
```
### Important : Ne pas appliquer maintenant
**ATTENTION** : Le conteneur PostgreSQL est actuellement en production et fonctionne. Ce fichier docker-compose.yml est une sauvegarde de la configuration pour le jour où vous devrez recréer le conteneur.
### Quand utiliser ce fichier
1. **En cas de migration** : Si vous devez déplacer le conteneur vers un autre serveur
2. **En cas de recréation** : Si le conteneur doit être recréé (mise à jour, problème, etc.)
3. **Pour la documentation** : Pour avoir une trace de la configuration actuelle
### Procédure de migration/recréation (à faire plus tard)
1. **Sauvegarder la base de données** :
```bash
docker exec gitea_db pg_dump -U gitea gitea > backup_$(date +%Y%m%d).sql
```
2. **Arrêter le conteneur existant** (si nécessaire) :
```bash
docker stop gitea_db
```
3. **Utiliser le docker-compose.yml** :
```bash
cd /opt/postgres
docker compose up -d
```
4. **Vérifier que tout fonctionne** :
```bash
docker ps | grep gitea_db
docker logs gitea_db
```
### Notes importantes
- Le volume `gitgit_syoul_fr_db_data` contient toutes les données PostgreSQL
- Le réseau `gitgit_syoul_fr_gitea_net` est partagé avec Gitea et Woodpecker
- Le mot de passe est celui actuellement utilisé en production
- Aucun port n'est exposé (communication interne uniquement)
## Sécurité
### Version actuelle (docker-compose.yml)
Le mot de passe est stocké en clair dans le `docker-compose.yml` avec la valeur actuelle : `Gitea_Db-2025_Secure`
### Version sécurisée avec fichier .env (optionnelle)
Pour une meilleure sécurité, vous pouvez utiliser `docker-compose.env.yml` qui charge les variables depuis un fichier `.env` :
1. **Créer le fichier .env** (sur le serveur uniquement, ne pas versionner) :
```bash
cd /opt/postgres
cat > .env << 'EOF'
POSTGRES_USER=gitea
POSTGRES_PASSWORD=Gitea_Db-2025_Secure
POSTGRES_DB=gitea
EOF
```
2. **Vérifier que .env est ignoré par git** :
```bash
echo ".env" >> .gitignore
git check-ignore .env
```
3. **Utiliser la version avec .env** :
```bash
docker compose -f docker-compose.env.yml up -d
```
### Alternatives de sécurité avancées
Pour une sécurité encore plus poussée :
1. Utiliser Docker Secrets (en mode Swarm)
2. Utiliser un gestionnaire de secrets externe (Vault, etc.)
3. Chiffrer le fichier `.env` avec des outils comme `sops` ou `ansible-vault`

View File

@ -0,0 +1,39 @@
version: "3.9"
# Version alternative avec fichier .env pour plus de sécurité
# Pour utiliser cette version :
# 1. Copiez .env.example vers .env
# 2. Remplissez les vraies valeurs dans .env
# 3. Utilisez ce fichier au lieu de docker-compose.yml
services:
gitea_db:
container_name: gitea_db
image: postgres:14
restart: always
env_file:
- .env
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- gitgit_syoul_fr_db_data:/var/lib/postgresql/data
networks:
- gitgit_syoul_fr_gitea_net
# Pas de ports exposés - communication interne uniquement
# Le conteneur est accessible via le réseau Docker via les aliases: gitea_db, db
volumes:
gitgit_syoul_fr_db_data:
external: true
networks:
gitgit_syoul_fr_gitea_net:
external: true

View File

@ -0,0 +1,30 @@
version: "3.9"
services:
gitea_db:
container_name: gitea_db
image: postgres:14
restart: always
environment:
POSTGRES_USER: gitea
POSTGRES_PASSWORD: Gitea_Db-2025_Secure
POSTGRES_DB: gitea
volumes:
- gitgit_syoul_fr_db_data:/var/lib/postgresql/data
networks:
- gitgit_syoul_fr_gitea_net
# Pas de ports exposés - communication interne uniquement
# Le conteneur est accessible via le réseau Docker via les aliases: gitea_db, db
volumes:
gitgit_syoul_fr_db_data:
external: true
networks:
gitgit_syoul_fr_gitea_net:
external: true