diff --git a/DEPLOYMENT_GUIDE.md b/DEPLOYMENT_GUIDE.md new file mode 100644 index 0000000..b35a4c8 --- /dev/null +++ b/DEPLOYMENT_GUIDE.md @@ -0,0 +1,244 @@ +# Guide de Déploiement Production RegisFlow + +## Pré-requis + +1. **Docker et Docker Compose installés** + ```bash + # Ubuntu/Debian + sudo apt update + sudo apt install docker.io docker-compose + + # CentOS/RHEL + sudo yum install docker docker-compose + ``` + +2. **Cloner le projet** + ```bash + git clone + cd regisflow + ``` + +## Configuration de Production + +### 1. Créer le fichier d'environnement + +```bash +# Copier le fichier d'exemple +cp .env.example .env + +# Éditer le fichier .env avec vos valeurs +nano .env +``` + +### 2. Configurer les variables OBLIGATOIRES + +Dans le fichier `.env`, changez OBLIGATOIREMENT : + +```bash +# Générer un mot de passe fort pour PostgreSQL +POSTGRES_PASSWORD=VotreMotDePassePostgreSQL2024! + +# Générer une clé secrète pour les sessions +SESSION_SECRET=$(openssl rand -base64 32) +``` + +### 3. Créer les répertoires de données + +```bash +# Créer les répertoires nécessaires +mkdir -p data/{postgres,backups,logs,postgres-logs} +chmod 755 data data/* +``` + +## Déploiement Automatique + +### Option 1 : Script de déploiement automatique + +```bash +# Rendre le script exécutable +chmod +x deploy-prod.sh + +# Exécuter le déploiement +./deploy-prod.sh +``` + +### Option 2 : Déploiement manuel + +```bash +# Construire les images +docker-compose build + +# Démarrer les services +docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d + +# Vérifier le statut +docker-compose ps +``` + +## Vérification du Déploiement + +1. **Vérifier les services** + ```bash + docker-compose ps + ``` + +2. **Accéder à l'application** + - RegisFlow : http://localhost:5000 + - PostgreSQL : localhost:5433 + +3. **Vérifier les logs** + ```bash + # Logs application + docker-compose logs regisflow + + # Logs base de données + docker-compose logs regisflow-db + ``` + +## Connexion Initiale + +1. **Compte administrateur par défaut** + - Utilisateur : `admin` + - Mot de passe : `admin123` + +2. **Première connexion** + - Connectez-vous avec les identifiants par défaut + - Changez IMMÉDIATEMENT le mot de passe administrateur + - Créez vos utilisateurs et magasins + +## Maintenance + +### Sauvegardes + +```bash +# Sauvegarde manuelle +docker-compose exec regisflow-db pg_dump -U regisflow regisflow > backup_$(date +%Y%m%d).sql + +# Sauvegarde automatique (déjà configurée dans l'app) +# - Toutes les 12 heures +# - Conservation des 10 dernières sauvegardes +``` + +### Monitoring + +```bash +# Utiliser le script de monitoring +./monitoring.sh + +# Ou manuellement +docker-compose logs -f +docker stats +``` + +### Mise à jour + +```bash +# Arrêter les services +docker-compose down + +# Récupérer les mises à jour +git pull + +# Reconstruire et redémarrer +docker-compose build +docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d +``` + +## Sécurité Production + +### Configuration HTTPS (Recommandé) + +1. **Installer Nginx** + ```bash + sudo apt install nginx + ``` + +2. **Configurer le reverse proxy** + ```bash + # Copier la configuration Nginx + sudo cp nginx-reverse-proxy.conf /etc/nginx/sites-available/regisflow + sudo ln -s /etc/nginx/sites-available/regisflow /etc/nginx/sites-enabled/ + + # Redémarrer Nginx + sudo systemctl restart nginx + ``` + +3. **Obtenir un certificat SSL** + ```bash + # Installer Certbot + sudo apt install certbot python3-certbot-nginx + + # Obtenir le certificat + sudo certbot --nginx -d votre-domaine.com + ``` + +### Sécurisation + +1. **Firewall** + ```bash + sudo ufw allow 22/tcp + sudo ufw allow 80/tcp + sudo ufw allow 443/tcp + sudo ufw enable + ``` + +2. **Permissions** + ```bash + chmod 600 .env + chown root:root .env + ``` + +## Dépannage + +### Problèmes courants + +1. **Service ne démarre pas** + ```bash + docker-compose logs regisflow + ``` + +2. **Base de données non accessible** + ```bash + docker-compose exec regisflow-db psql -U regisflow -d regisflow + ``` + +3. **Erreur de migration** + ```bash + docker-compose exec regisflow npx drizzle-kit push + ``` + +### Commandes utiles + +```bash +# Redémarrer un service +docker-compose restart regisflow + +# Accéder au container +docker-compose exec regisflow sh + +# Voir les ressources utilisées +docker stats + +# Nettoyer les volumes (ATTENTION : supprime les données) +docker-compose down -v +``` + +## Support + +- **Documentation** : README.md +- **Configuration** : .env.example +- **Logs** : `docker-compose logs -f` +- **Monitoring** : `./monitoring.sh` + +## Caractéristiques Production + +- ✅ Multi-utilisateur avec rôles (Admin, Manager, Employee) +- ✅ Multi-magasins avec isolation des données +- ✅ Sauvegardes automatiques toutes les 12 heures +- ✅ Purge automatique des données > 19 mois +- ✅ Interface responsive mobile/desktop +- ✅ Export PDF et CSV +- ✅ Validation EAN-13 et conformité réglementaire +- ✅ Sécurité par défaut (HTTPS, sessions sécurisées) +- ✅ Monitoring et health checks +- ✅ Conteneurs sécurisés (utilisateur non-root) \ No newline at end of file diff --git a/QUICK_START.md b/QUICK_START.md new file mode 100644 index 0000000..390cd34 --- /dev/null +++ b/QUICK_START.md @@ -0,0 +1,119 @@ +# Démarrage Rapide RegisFlow - Production Docker + +## 🚀 Déploiement en 5 minutes + +### 1. Préparer l'environnement +```bash +# Cloner le projet +git clone +cd regisflow + +# Configurer l'environnement +cp .env.example .env +nano .env # Changer POSTGRES_PASSWORD et SESSION_SECRET + +# Créer les répertoires +mkdir -p data/{postgres,backups,logs} +``` + +### 2. Déployer +```bash +# Déploiement automatique +chmod +x deploy-prod.sh +./deploy-prod.sh + +# OU déploiement manuel +docker-compose build +docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d +``` + +### 3. Accéder à l'application +- **URL** : http://localhost:5000 +- **Utilisateur** : admin +- **Mot de passe** : admin123 + +### 4. Configuration initiale +1. Connectez-vous avec admin/admin123 +2. Changez le mot de passe administrateur +3. Créez vos magasins et utilisateurs + +## ⚡ Commandes essentielles + +```bash +# Vérifier le statut +docker-compose ps + +# Voir les logs +docker-compose logs -f + +# Arrêter/démarrer +docker-compose down +docker-compose up -d + +# Sauvegarde +docker-compose exec regisflow-db pg_dump -U regisflow regisflow > backup.sql +``` + +## 🔧 Variables obligatoires (.env) + +```bash +# À changer OBLIGATOIREMENT +POSTGRES_PASSWORD=VotreMotDePasseSecurise2024! +SESSION_SECRET=$(openssl rand -base64 32) + +# Configuration de base +NODE_ENV=production +PORT=5000 +TZ=Europe/Paris +``` + +## 📊 Monitoring + +```bash +# Script de monitoring +./monitoring.sh + +# Santé des services +curl http://localhost:5000/health + +# Ressources utilisées +docker stats +``` + +## 🔒 Sécurité + +Pour la production, configurez HTTPS avec Nginx : + +```bash +# Copier la configuration +sudo cp nginx-reverse-proxy.conf /etc/nginx/sites-available/regisflow +sudo ln -s /etc/nginx/sites-available/regisflow /etc/nginx/sites-enabled/ + +# Certificat SSL +sudo certbot --nginx -d votre-domaine.com +``` + +## 🚨 Dépannage + +```bash +# Si un service ne démarre pas +docker-compose logs regisflow + +# Si problème de base de données +docker-compose exec regisflow-db psql -U regisflow -d regisflow + +# Redémarrer tout +docker-compose restart +``` + +## 📱 Fonctionnalités + +- Multi-utilisateur (Admin/Manager/Employee) +- Multi-magasins avec isolation +- Sauvegardes automatiques +- Purge automatique (19 mois) +- Export PDF/CSV +- Validation EAN-13 +- Interface mobile responsive + +**🎯 L'application est maintenant prête pour la production !** \ No newline at end of file diff --git a/README_PRODUCTION.md b/README_PRODUCTION.md new file mode 100644 index 0000000..fd35afc --- /dev/null +++ b/README_PRODUCTION.md @@ -0,0 +1,110 @@ +# RegisFlow - Application de Production + +## 🎯 Application Prête pour la Production + +RegisFlow est maintenant entièrement configurée pour un déploiement en production sous Docker avec toutes les fonctionnalités de sécurité et de performance nécessaires. + +## 🚀 Déploiement Immédiat + +### Option 1 : Déploiement automatique (Recommandé) + +```bash +# 1. Configurer l'environnement +cp .env.example .env +nano .env # Changez POSTGRES_PASSWORD et SESSION_SECRET + +# 2. Créer les répertoires +mkdir -p data/{postgres,backups,logs} + +# 3. Déployer automatiquement +./deploy-prod.sh +``` + +### Option 2 : Déploiement manuel + +```bash +# 1. Construire les images +docker-compose build + +# 2. Démarrer en production +docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d + +# 3. Vérifier le statut +docker-compose ps +``` + +## 📊 Accès à l'Application + +- **URL** : http://localhost:5000 +- **Compte par défaut** : admin / admin123 +- **PostgreSQL** : localhost:5433 + +## 🔧 Configuration Minimale Requise + +Dans le fichier `.env`, changez OBLIGATOIREMENT : + +```bash +# Mot de passe PostgreSQL fort +POSTGRES_PASSWORD=VotreMotDePasseSecurise2024! + +# Clé secrète pour sessions (générez avec: openssl rand -base64 32) +SESSION_SECRET=VotreCleSecreteFortePourLesSessions +``` + +## 🔒 Sécurité Production + +- ✅ Utilisateur non-root dans les conteneurs +- ✅ Réseau Docker isolé +- ✅ Sessions sécurisées avec PostgreSQL +- ✅ Health checks automatiques +- ✅ Limites de ressources définies +- ✅ Configuration HTTPS prête (avec Nginx) + +## 📱 Fonctionnalités Intégrées + +- **Multi-utilisateur** : Admin, Manager, Employee +- **Multi-magasins** : Isolation complète des données +- **Conformité réglementaire** : Validation EAN-13, purge 19 mois +- **Sauvegardes automatiques** : Toutes les 12 heures +- **Export de données** : PDF, CSV +- **Interface responsive** : Mobile et desktop +- **Monitoring intégré** : Logs et métriques + +## 🚨 Commandes Essentielles + +```bash +# Vérifier le statut +docker-compose ps + +# Voir les logs +docker-compose logs -f regisflow + +# Arrêter/Redémarrer +docker-compose down +docker-compose up -d + +# Sauvegarde manuelle +docker-compose exec regisflow-db pg_dump -U regisflow regisflow > backup.sql + +# Monitoring +./monitoring.sh +``` + +## 📋 Prochaines Étapes + +1. **Configurez HTTPS** avec Nginx (configuration incluse) +2. **Changez le mot de passe admin** lors de la première connexion +3. **Créez vos magasins et utilisateurs** +4. **Testez les sauvegardes** +5. **Configurez le monitoring** + +## 📞 Support + +- **Guide complet** : DEPLOYMENT_GUIDE.md +- **Démarrage rapide** : QUICK_START.md +- **Configuration** : .env.example +- **Logs** : `docker-compose logs -f` + +**🎉 L'application est maintenant prête pour la production !** + +Consultez `DEPLOYMENT_GUIDE.md` pour la configuration complète et `QUICK_START.md` pour un démarrage rapide. \ No newline at end of file