Le guide complet de publication d'une API Express moderne : compilation TypeScript vers JavaScript, gestion des variables confidentielles, supervision de santé et démarrage avec un superviseur de processus.
Exécution de Node.js avec paramètres d'optimisation mémoire (--max-old-space-size).
Compilation propre du code source TS vers le dossier distribuable dist/.
Endpoint de surveillance renvoyant statut 200 OK et métriques système.
Garantie que l'application reste active sans interruption 24h/24.
# 1. Cloner ou mettre à jour le dépôt sur le serveur VPS
$ cd /var/www/mon-api
$ git pull origin main
# 2. Installer strictement les dépendances nécessaires
$ npm ci --omit=dev
# 3. Compiler TypeScript en JavaScript de production
$ npm run build
# Génère les fichiers optimisés dans /var/www/mon-api/dist/
# 4. Lancer ou recharger l'API avec PM2
$ pm2 start dist/server.js --name "api-prod" --time
$ pm2 save
# 5. Tester immédiatement la santé du service
$ curl -s http://127.0.0.1:3000/api/health | jq
{
"status": "UP",
"uptime": 12.4,
"timestamp": "2026-10-11T12:50:00.000Z"
}ts-node ou tsx permet d'exécuter directement des fichiers .ts sans étape de build. ts-node recompile votre code en mémoire à chaque exécution, ce qui consomme énormément de CPU et ralentit chaque requête. La règle professionnelle est de toujours compiler votre code au préalable (tsc) et de faire exécuter par Node.js du pur JavaScript minifié (node dist/server.js). /api/health qui ne requiert aucune authentification. Elle permet aux hébergeurs (Render, AWS, Nginx) de savoir si votre API est opérationnelle ou si le conteneur doit être redémarré en cas de blocage de l'Event Loop. | Critère | Déploiement sur VPS Linux Dédié | Déploiement sur PaaS (Render / Railway) |
|---|---|---|
| Facilité initiale | Moyenne (demande de maîtriser Linux et Nginx) | Ultra-simple (1 clic via dépôt GitHub) |
| Contrôle système | Total (accès root, choix du kernel et pare-feu) | Restreint (conteneur isolé géré par l'hébergeur) |
| Coût à volume élevé | Fixe et très économique (ex: 5€ à 15€/mois) | Progressif (facturation à la consommation de RAM) |
| Temps de veille (Cold Start) | Zéro (le serveur tourne 24h/24 sans sommeil) | 15 à 30s de réveil sur les offres gratuites |