Initial commit: Infrastructure Git CI/CD avec Gitea, Woodpecker, PostgreSQL, Consul et Registrator
This commit is contained in:
100
postgres/README.md
Normal file
100
postgres/README.md
Normal 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`
|
||||
|
||||
39
postgres/docker-compose.env.yml
Normal file
39
postgres/docker-compose.env.yml
Normal 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
|
||||
|
||||
30
postgres/docker-compose.yml
Normal file
30
postgres/docker-compose.yml
Normal 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
|
||||
|
||||
Reference in New Issue
Block a user