mirror of
https://github.com/R0m1k3/Regisflow.git
synced 2026-10-16 03:38:17 +02:00
Implements a Node.js 18 compatibility fix by patching `dist/index.js` and creating `server/prod-start.js` to replace `import.meta.dirname` with static paths, resolving a runtime error. 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/99451107-d8a0-4f61-81e0-cae481285260.jpg
108 lines
3.1 KiB
Markdown
108 lines
3.1 KiB
Markdown
# Guide de Test Docker pour RegisFlow
|
|
|
|
## ✅ Problème Résolu
|
|
|
|
Le problème `TypeError [ERR_INVALID_ARG_TYPE]: The "paths[0]" argument must be of type string. Received undefined` a été résolu avec un script de compatibilité Node.js 18.
|
|
|
|
### Cause du Problème
|
|
- Node.js 18 ne supporte pas `import.meta.dirname`
|
|
- Le code compilé dans `dist/index.js` utilise cette fonctionnalité non disponible
|
|
- L'erreur se produit lors de la résolution des chemins (ligne 955 dans dist/index.js)
|
|
|
|
### Solution Appliquée
|
|
- Création d'un script `server/prod-start.js` qui remplace `import.meta.dirname` par des valeurs statiques
|
|
- Modification du script Docker d'entrée pour utiliser ce script de compatibilité
|
|
- Le script lit le fichier compilé et remplace les références undefined par des chemins absolus
|
|
- Création automatique du répertoire `public` pour les fichiers statiques
|
|
|
|
## Test du Déploiement Docker
|
|
|
|
### 1. Construction du Conteneur
|
|
```bash
|
|
# Construire l'image RegisFlow
|
|
docker-compose build regisflow
|
|
|
|
# Ou reconstruction complète
|
|
docker-compose build --no-cache regisflow
|
|
```
|
|
|
|
### 2. Démarrage des Services
|
|
```bash
|
|
# Démarrer tous les services
|
|
docker-compose up -d
|
|
|
|
# Vérifier les logs
|
|
docker-compose logs -f regisflow
|
|
docker-compose logs -f regisflow-db
|
|
```
|
|
|
|
### 3. Vérification du Fonctionnement
|
|
```bash
|
|
# Statut des conteneurs
|
|
docker-compose ps
|
|
|
|
# Test de connexion
|
|
curl http://localhost:5000/api/health
|
|
|
|
# Accès à l'application
|
|
# http://localhost:5000
|
|
```
|
|
|
|
### 4. Arrêt et Nettoyage
|
|
```bash
|
|
# Arrêter les services
|
|
docker-compose down
|
|
|
|
# Nettoyage complet avec volumes
|
|
docker-compose down -v
|
|
```
|
|
|
|
## Configuration Finale
|
|
|
|
### Fichiers Modifiés
|
|
- `docker-entrypoint-simple.sh` : Script d'entrée robuste
|
|
- `Dockerfile` : Configuration optimisée pour Node.js 18
|
|
- `.env` : Variables préconfigurées pour installation automatique
|
|
|
|
### Variables d'Environnement par Défaut
|
|
```env
|
|
DATABASE_URL=postgresql://regisflow:RegisFlow2024!PostgreSQL@regisflow-db:5432/regisflow
|
|
SESSION_SECRET=RegisFlow2024SessionSecretKey1234567890ABCDEF
|
|
NODE_ENV=production
|
|
PORT=5000
|
|
```
|
|
|
|
### Fonctionnalités Opérationnelles
|
|
- ✅ Application web responsive
|
|
- ✅ Base de données PostgreSQL intégrée
|
|
- ✅ Authentification multi-utilisateur
|
|
- ✅ Gestion des magasins et utilisateurs
|
|
- ✅ Enregistrement des ventes conformes
|
|
- ✅ Sauvegardes automatiques
|
|
- ✅ Purge automatique (19 mois)
|
|
- ✅ Export PDF et CSV
|
|
|
|
## Logs Attendus au Démarrage
|
|
|
|
```
|
|
🚀 Démarrage de RegisFlow (mode simplifié)...
|
|
📡 Attente de la base de données...
|
|
✅ PostgreSQL prêt!
|
|
✅ Base de données configurée
|
|
🎯 Démarrage de RegisFlow...
|
|
✅ Node.js 18 compatibility fix applied
|
|
serving on port 5000
|
|
📅 Automatic backup scheduler started
|
|
🕐 Planificateur de purge des ventes démarré
|
|
```
|
|
|
|
### Fichiers de Solution
|
|
- `server/prod-start.js` : Script de compatibilité Node.js 18
|
|
- `docker-entrypoint-simple.sh` : Script d'entrée Docker simplifié
|
|
- `Dockerfile` : Configuration optimisée pour production
|
|
|
|
## Compte par Défaut
|
|
- **Utilisateur** : admin
|
|
- **Mot de passe** : admin123
|
|
|
|
⚠️ **Important** : Changez le mot de passe par défaut après la première connexion pour des raisons de sécurité. |