Variables d'Environnement
Ce guide détaille toutes les variables d'environnement nécessaires pour déployer Zen Trader Journal.
🔑 Variables Requises
Base de Données PostgreSQL
| Variable | Description | Exemple |
|---|---|---|
DATABASE_URL | Connexion PostgreSQL (public) | postgresql://user:pass@host:5432/db |
DATABASE_PRIVATE_URL | Connexion PostgreSQL (interne Railway) | postgresql://user:pass@host.railway.internal:5432/db |
Redis
| Variable | Description | Exemple |
|---|---|---|
REDIS_URL | Connexion Redis (public) | redis://user:pass@host:6379 |
REDIS_PRIVATE_URL | Connexion Redis (interne Railway) | redis://host.railway.internal:6379 |
Sécurité
| Variable | Description | Exemple |
|---|---|---|
JWT_SECRET | Secret pour JWT (min 32 car.) | Générer avec node -e "console.log(require('crypto').randomBytes(64).toString('hex'))" |
⚙️ Variables Optionnelles
Application
| Variable | Défaut | Description |
|---|---|---|
NODE_ENV | development | Environment |
PORT | 5000 | Port du serveur |
CLIENT_URL | http://localhost:5173 | URL du frontend |
Email (SMTP)
| Variable | Description |
|---|---|
SMTP_HOST | Serveur SMTP |
SMTP_USER | Utilisateur |
SMTP_PASS | Mot de passe/API key |
SMTP_PORT | Port (défaut: 587) |
SMTP_SECURE | Utiliser TLS (défaut: false) |
EMAIL_FROM | Adresse d'expédition |
S3 (Stockage fichiers)
| Variable | Description |
|---|---|
S3_REGION | Région S3 |
S3_ENDPOINT | Endpoint S3 |
S3_BUCKET | Nom du bucket |
S3_ACCESS_KEY | Clé d'accès |
S3_SECRET_KEY | Clé secrète |
Admin
| Variable | Description |
|---|---|
ADMIN_API_KEY | Clé API admin pour backup/restore |
🚂 Configuration Railway
Références de Variables
Utilisez la syntaxe Railway pour référencer les services :
DATABASE_PRIVATE_URL=${{Postgres.DATABASE_PRIVATE_URL}}
REDIS_PRIVATE_URL=${{Redis.REDIS_PRIVATE_URL}}
Checklist Déploiement
- PostgreSQL ajouté
- Redis ajouté
-
DATABASE_PRIVATE_URLconfiguré -
REDIS_PRIVATE_URLconfiguré -
JWT_SECRETgénéré et configuré -
NODE_ENV=production -
CLIENT_URLconfiguré avec votre domaine
🔐 Bonnes Pratiques
- Ne jamais commit les secrets
- Utiliser les URLs privées pour les connexions internes
- Générer des secrets cryptographiquement sûrs
- Rotater régulièrement les secrets sensibles