Configures PostgreSQL to run inside Docker, streamlining deployment and simplifying database management using Drizzle ORM. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 91318273-c764-4fd4-be04-bdc12c38af32 Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/0715008c-7244-40f4-befc-26c014852236/6e755801-08e8-4492-805e-ac3610de5a2a.jpg
6.9 KiB
RegisFlow - Déploiement Docker
Ce guide vous explique comment déployer RegisFlow avec Docker et Docker Compose.
🐳 Prérequis
- Docker Engine 20.10 ou supérieur
- Docker Compose 2.0 ou supérieur
- Au minimum 1 GB de RAM libre
- Au minimum 2 GB d'espace disque libre
🚀 Démarrage Rapide
1. Préparer l'environnement
# Cloner le projet
git clone <votre-repo>
cd regisflow
# Copier et configurer le fichier d'environnement
cp .env.example .env
# Éditer le fichier .env avec vos paramètres
nano .env
2. Configurer les variables d'environnement
Éditez le fichier .env avec votre serveur PostgreSQL externe :
# Configuration PostgreSQL (PRÉCONFIGURÉE)
POSTGRES_PASSWORD=RegisFlow2024!
# Configuration de l'application
NODE_ENV=production
PORT=5000
# Clé secrète pour les sessions (OBLIGATOIRE EN PRODUCTION)
SESSION_SECRET=votre-cle-secrete-super-longue-et-complexe
# Configuration du timezone
TZ=Europe/Paris
Préparation de votre serveur PostgreSQL
1. Se connecter à PostgreSQL :
sudo -u postgres psql
2. Créer l'utilisateur et la base (préconfigurés) :
CREATE USER regisflow WITH PASSWORD 'RegisFlow2024!';
CREATE DATABASE regisflow OWNER regisflow;
GRANT ALL PRIVILEGES ON DATABASE regisflow TO regisflow;
\q
3. Configuration réseau PostgreSQL :
Éditez /etc/postgresql/*/main/postgresql.conf :
listen_addresses = '*'
Éditez /etc/postgresql/*/main/pg_hba.conf :
host regisflow regisflow 0.0.0.0/0 md5
4. Redémarrer PostgreSQL :
sudo systemctl restart postgresql
SEULE MODIFICATION NÉCESSAIRE : Remplacer VOTRE_IP_POSTGRES par l'IP réelle de votre serveur.
3. Lancer l'application
Option 1 : Script automatique (recommandé)
# Utiliser le script de déploiement automatique
chmod +x deploy.sh
./deploy.sh
Option 2 : Commandes manuelles
# Construire et démarrer tous les services
docker-compose up -d
# Vérifier les logs
docker-compose logs -f
# Accéder à l'application
# http://localhost:5000
📋 Services Inclus
1. PostgreSQL (Base de données)
- Container: regisflow-db
- Port externe: 5433 (accès depuis l'hôte)
- Port interne: 5432 (communication Docker)
- Database: regisflow
- Utilisateur: regisflow
- Données persistantes: Volume
postgres_data
2. RegisFlow (Application)
- Container: regisflow-app
- Port: 5000
- Dépendances: regisflow-db
- Sauvegardes: Volume
backup_data - Health check:
/health - Connexion DB: Via nom de container
regisflow-db:5432
🔧 Commandes Utiles
Gestion des services
# Démarrer les services
docker-compose up -d
# Arrêter les services
docker-compose down
# Redémarrer un service
docker-compose restart regisflow
# Voir les logs
docker-compose logs -f regisflow
# Voir le statut des services
docker-compose ps
Gestion des données
# Sauvegarder la base de données externe
pg_dump -h IP_SERVEUR -p 5433 -U regisflow regisflow > backup.sql
# Restaurer la base de données externe
psql -h IP_SERVEUR -p 5433 -U regisflow regisflow < backup.sql
# Accéder à la base de données externe
psql -h IP_SERVEUR -p 5433 -U regisflow regisflow
# Connexion à la base externe
psql -h IP_SERVEUR -p 5433 -U regisflow regisflow
Maintenance
# Mettre à jour l'application
docker-compose pull
docker-compose up -d --build
# Nettoyer les images inutilisées
docker system prune -f
# Voir l'utilisation des volumes
docker volume ls
docker volume inspect regisflow_backup_data
🛡️ Sécurité
Configuration de production
-
Changez les mots de passe par défaut :
POSTGRES_PASSWORDSESSION_SECRET
-
Configurez HTTPS :
- Obtenez un certificat SSL
- Modifiez
nginx.confpour le HTTPS - Activez
secure: truepour les cookies
-
Limitez l'accès réseau :
- Utilisez un firewall
- Limitez l'accès aux ports nécessaires
Sauvegarde automatique
L'application inclut un système de sauvegarde automatique :
- Sauvegarde toutes les 12 heures
- Conservation des 10 dernières sauvegardes
- Stockage dans le volume
backup_data
📊 Surveillance
Health Checks
# Vérifier la santé de l'application
curl http://localhost:5000/health
# Vérifier via Docker
docker-compose exec regisflow wget -qO- http://localhost:5000/health
Métriques
# Statistiques des conteneurs
docker stats
# Utilisation des volumes
docker system df
🔧 Dépannage
Problèmes courants
-
L'application ne démarre pas :
# Vérifier les logs docker-compose logs regisflow # Vérifier la connexion à la base externe docker-compose exec regisflow pg_isready -h IP_SERVEUR -p 5433 -U regisflow -
Erreur de connexion à la base :
# Vérifier que PostgreSQL externe est accessible docker-compose exec regisflow pg_isready -h IP_SERVEUR -p 5433 -U regisflow # Tester la connectivité réseau docker-compose exec regisflow nc -zv IP_SERVEUR 5433 -
Problème de permissions :
# Vérifier les permissions des volumes docker-compose exec regisflow ls -la /app/backups
Réinitialisation complète
# Arrêter tous les services
docker-compose down
# Supprimer les volumes (ATTENTION: perte de données)
docker-compose down -v
# Nettoyer les images
docker system prune -af
# Redémarrer
docker-compose up -d
🔄 Mise à jour
Mise à jour de l'application
# Récupérer les dernières modifications
git pull origin main
# Reconstruire et redémarrer
docker-compose up -d --build
# Vérifier les logs
docker-compose logs -f regisflow
Migration de données
L'application gère automatiquement les migrations de base de données au démarrage.
📝 Configuration Avancée
Accès via Reverse Proxy (Optionnel)
Si vous souhaitez ajouter un reverse proxy (Nginx, Apache, etc.) :
- Configurez le proxy pour pointer vers
localhost:5000 - Ajoutez la configuration SSL/TLS si nécessaire
- Optimisez les performances selon vos besoins
Variables d'environnement complètes
# Base de données
DATABASE_URL=postgresql://regisflow:RegisFlow2024!@IP_SERVEUR:5433/regisflow
POSTGRES_PASSWORD=password
# Application
NODE_ENV=production
PORT=5000
SESSION_SECRET=your-secret-key
# Timezone
TZ=Europe/Paris
# Sauvegardes (optionnel)
BACKUP_RETENTION_DAYS=30
MAX_BACKUP_COUNT=10
# Logs (optionnel)
LOG_LEVEL=info
🆘 Support
En cas de problème :
- Vérifiez les logs :
docker-compose logs - Consultez la documentation
- Vérifiez les issues sur GitHub
- Contactez le support