Files
Regisflow/README_DOCKER.md
T
michaelschal 0252abc41c Simplify application startup and improve deployment process
Refactors Docker setup to build the app, removes tsx, and streamlines entrypoint.

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
2025-07-09 21:12:07 +00:00

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

AUCUNE MODIFICATION NÉCESSAIRE : Tout est préconfigué pour fonctionner immédiatement.

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

  1. Changez les mots de passe par défaut :

    • POSTGRES_PASSWORD
    • SESSION_SECRET
  2. Configurez HTTPS :

    • Obtenez un certificat SSL
    • Modifiez nginx.conf pour le HTTPS
    • Activez secure: true pour les cookies
  3. 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

  1. 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
    
  2. 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
    
  3. 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 :

  1. Vérifiez les logs : docker-compose logs
  2. Consultez la documentation
  3. Vérifiez les issues sur GitHub
  4. Contactez le support

📚 Liens Utiles