You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.7 KiB
3.7 KiB
BricoLoc - Legacy App Deployment Guide
Déploiement sur Heroku
Prérequis
- Compte Heroku
- Heroku CLI installé
- Git installé
Étapes de déploiement
- Connexion à Heroku
heroku login
- Création de l'application
heroku create bricolociaac-legacy
- Configuration des variables d'environnement
heroku config:set NODE_ENV=production
heroku config:set PORT=3000
heroku config:set SESSION_SECRET=your-secret-key-here
- Déploiement
git push heroku main
- Initialisation de la base de données
heroku run npm run db:reset --app bricolociaac-legacy
- Ouverture de l'application
heroku open
Déploiement sur Render.com
Prérequis
- Compte Render.com
- Dépôt Git connecté
Configuration
- Créer un nouveau Web Service sur Render
- Connecter votre dépôt GitHub
- Configuration:
- Name: bricolociaac-legacy
- Environment: Node
- Build Command:
cd apps/legacy-app && npm install - Start Command:
cd apps/legacy-app && npm start - Auto-Deploy: Yes
Variables d'environnement
NODE_ENV: productionSESSION_SECRET: [générer une clé secrète]
Déploiement sur Railway
Configuration
- Créer un nouveau projet sur Railway
- Connecter votre dépôt GitHub
- Railway détectera automatiquement Node.js
- Ajouter les variables d'environnement:
NODE_ENV: productionSESSION_SECRET: [générer une clé secrète]
Configuration personnalisée (railway.json)
{
"build": {
"builder": "NIXPACKS"
},
"deploy": {
"startCommand": "cd apps/legacy-app && npm start",
"restartPolicyType": "ON_FAILURE",
"restartPolicyMaxRetries": 10
}
}
Déploiement sur Fly.io
Prérequis
curl -L https://fly.io/install.sh | sh
flyctl auth login
Déploiement
fly launch
fly deploy
Notes importantes
Base de données
L'application utilise SQLite en production. Pour un déploiement en production réel, considérez:
- Migrer vers PostgreSQL ou MySQL
- Utiliser un service de base de données managé
- Implémenter des sauvegardes régulières
Sécurité
⚠️ Cette application contient des vulnérabilités intentionnelles pour des fins pédagogiques.
Avant un déploiement en production réel:
- Corriger toutes les vulnérabilités listées dans
apps/legacy-app/docs/BUGS.md - Implémenter une authentification robuste
- Ajouter CSRF protection
- Configurer HTTPS/SSL
- Valider tous les fichiers uploadés
- Utiliser des secrets sécurisés (variables d'environnement)
Stockage de fichiers
Les uploads sont stockés localement. Pour la production:
- Utiliser un service comme AWS S3, Cloudinary, ou Uploadcare
- Implémenter une validation stricte des types de fichiers
- Limiter la taille des fichiers
Sessions
Les sessions sont stockées dans SQLite. Pour la production:
- Utiliser Redis ou un store de sessions dédié
- Configurer correctement les cookies (secure, sameSite, etc.)
Vérification du déploiement
Après le déploiement, vérifier:
- L'application démarre correctement
- Les routes principales sont accessibles
- La base de données est initialisée
- Les sessions fonctionnent
- Les fichiers statiques sont servis
Troubleshooting
L'application ne démarre pas
- Vérifier les logs:
heroku logs --tail(ou équivalent) - Vérifier que toutes les dépendances sont installées
- Vérifier les variables d'environnement
Base de données vide
- Exécuter
npm run db:resetsur le serveur - Vérifier que les fichiers de seed sont présents
Erreurs de session
- Vérifier que
SESSION_SECRETest configuré - Vérifier les permissions du dossier de la base de données