Introduction : pourquoi déployer une application TypeScript sur un VPS est le bon choix
Le développement en TypeScript est devenu un standard de l'industrie grâce au typage strict et à une meilleure lisibilité du code. Cependant, une fois le développement terminé, une question clé se pose : comment déployer correctement l'application sur un serveur de production ? Déployer une application TypeScript sur un VPS (Virtual Private Server) ne se limite pas à copier des fichiers. C'est un processus qui inclut la compilation de TypeScript en JavaScript, la configuration de l'environnement, la gestion des processus et la garantie de la sécurité.
Dans cet article, nous allons détailler un algorithme étape par étape pour déployer une application TypeScript sur un VPS. Vous apprendrez comment préparer le serveur, configurer la build, lancer l'application avec le gestionnaire de processus PM2 et assurer sa disponibilité via Nginx. Ce contenu est destiné aux développeurs qui possèdent déjà une application de base en TypeScript (par exemple, Express.js ou NestJS) et souhaitent la déployer sur un serveur distant.
Étape 1 : Préparation du VPS et installation des logiciels nécessaires
La première étape du déploiement d'une application TypeScript sur un VPS est la configuration du serveur lui-même. Nous utiliserons Ubuntu 22.04 LTS, le système d'exploitation le plus stable et le plus populaire pour les serveurs web.
Après vous être connecté au serveur via SSH, exécutez les commandes suivantes :
# Mise à jour des paquetssudo apt update && sudo apt upgrade -y
# Installation de Node.js (version 18 ou supérieure)curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -sudo apt install -y nodejs
# Vérification des versionsnode -vnpm -v
# Installation de Gitsudo apt install git -y
# Installation du gestionnaire de processus PM2npm install -g pm2Notez que TypeScript n'a pas besoin d'être installé globalement sur le serveur. Il ne sera utilisé que lors de l'étape de build du projet, qui peut être effectuée soit sur la machine locale, soit sur le serveur via des scripts CI/CD.
Il est également recommandé de configurer un pare-feu de base :
sudo ufw allow OpenSSHsudo ufw allow 'Nginx Full'sudo ufw enableÉtape 2 : Clonage du projet et build TypeScript
Maintenant que le serveur est prêt, transférons le code de l'application TypeScript. La méthode la plus courante est le clonage du dépôt via Git.
# Clonage du dépôtgit clone https://github.com/your-username/your-project.gitcd your-project
# Installation des dépendancesnpm install
# Compilation de TypeScript en JavaScriptnpx tscPoint important : assurez-vous que le fichier tsconfig.json spécifie correctement le dossier de sortie. Il s'agit généralement de dist ou build :
{ "compilerOptions": { "target": "ES2020", "module": "commonjs", "outDir": "./dist", "rootDir": "./src", "strict": true, "esModuleInterop": true }, "include": ["src/**/*"], "exclude": ["node_modules", "dist"]}Après une compilation réussie, le dossier dist contiendra le code JavaScript prêt à être exécuté. Vérifiez que l'application se lance correctement :
node dist/index.jsÉtape 3 : Lancement via PM2 et configuration du démarrage automatique
Un simple lancement via node ne convient pas à la production — si la connexion SSH est interrompue, le processus s'arrêtera. Pour déployer une application TypeScript sur un VPS, nous utilisons PM2, qui assure :
- Le redémarrage automatique après un crash
- La journalisation des erreurs et de la sortie standard (stdout)
- La clustering (exécution sur plusieurs cœurs CPU)
Créez un fichier ecosystem.config.js à la racine du projet :
module.exports = { apps: [{ name: 'my-ts-app', script: './dist/index.js', instances: 'max', exec_mode: 'cluster', env: { NODE_ENV: 'production', PORT: 3000 }, error_file: './logs/err.log', out_file: './logs/out.log', merge_logs: true }]};Lancez l'application via PM2 :
pm2 start ecosystem.config.jspm2 savepm2