# 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`