101 lines
3.0 KiB
Markdown
101 lines
3.0 KiB
Markdown
# 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`
|
|
|