Deuxième étape du projet pratique : mettez en ligne votre API Node.js/Express. Configurez l'écoute sur le port dynamique fourni par l'hébergeur, isolez les variables d'environnement secrètes et validez le bon fonctionnement avec un endpoint /health.
Obligation d'écouter sur process.env.PORT fourni dynamiquement par la plateforme Cloud.
Définition rigoureuse de 'npm run build' et du script de démarrage de production 'npm start'.
Activation des middlewares Helmet, compression et limitation de débit (express-rate-limit).
Route de contrôle renvoyant 200 OK pour prouver à l'orchestrateur que le conteneur est vivant.
// Serveur de production prêt pour le déploiement Cloud (Render / Railway / VPS) :
import express from 'express';
import helmet from 'helmet';
import compression from 'compression';
const app = express();
// 1. Middlewares indispensables de production
app.use(helmet());
app.use(compression());
app.use(express.json());
// 2. Endpoint de santé pour l'orchestrateur Cloud
app.get('/health', (req, res) => {
res.status(200).json({
status: 'healthy',
uptime: process.uptime(),
timestamp: new Date().toISOString()
});
});
// 3. Écoute sur le port injecté par la plateforme d'hébergement
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`🚀 Serveur API de production à l'écoute sur le port ${PORT}`);
});PORT=10000) à chaque démarrage de conteneur. Si votre code contient app.listen(3000) sans lire process.env.PORT, l'hébergeur attendra 60 secondes sans voir de réponse sur son port et déclarera le déploiement en échec (Port binding failed) ! npm install && npm run build.npm start (qui pointe vers node dist/server.js).| Solution | Facilité de Déploiement | Coût Initial | Cas d'Usage Recommandé |
|---|---|---|---|
| Render (Web Service) | Très Facile (Git push) | Plan gratuit / 7 $/mois | Projets d'école, MVPs, prototypes et startups |
| Railway | Très Facile (Détection auto) | 5 $ de crédits offerts | APIs avec base de données Postgres/MySQL couplée |
| VPS Ubuntu (Hetzner / OVH) | Intermédiaire (SSH / PM2 / Nginx) | 4 à 6 €/mois | Applications à fort trafic exigeant une rentabilité maximale |
| AWS ECS / Fargate | Avancé (Docker conteneurs) | Facturation à l'usage | Grandes entreprises et architectures micro-services |