Aller au contenu
Se connecter
Retour au blog
Tutoriels · 494 vues

Guide : Déployer une application Node.js en production avec PM2

Apprenez à déployer, sécuriser et monitorer une application Node.js sur votre VPS Virtmo avec PM2, Nginx en reverse proxy et les certificats SSL.

Prérequis

Avant de commencer, assurez-vous d'avoir :

  • Un VPS Virtmo (KVM ou LXC) avec Ubuntu 22.04+
  • Un accès SSH root ou sudo
  • Un nom de domaine pointant vers l'IP de votre VPS

Étape 1 : Installer Node.js via NVM

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
nvm install 20
nvm use 20
node --version

Étape 2 : Déployer votre application

cd /var/www
git clone https://github.com/votre-repo/mon-app.git
cd mon-app
npm ci --production

Étape 3 : Configurer PM2

PM2 est un gestionnaire de processus Node.js qui assure le redémarrage automatique et le monitoring :

npm install -g pm2
pm2 start app.js --name "mon-app" -i max
pm2 startup systemd
pm2 save

L'option -i max active le mode cluster, utilisant tous les vCPU disponibles.

Étape 4 : Configurer Nginx en reverse proxy

server {
    listen 80;
    server_name mondomaine.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_cache_bypass $http_upgrade;
    }
}

Étape 5 : SSL avec Let's Encrypt

apt install certbot python3-certbot-nginx
certbot --nginx -d mondomaine.com

Monitoring avec PM2

Surveillez votre application en temps réel :

pm2 monit           # Dashboard temps réel
pm2 logs mon-app    # Logs en streaming
pm2 status          # État de tous les processus

Astuce Virtmo : combinez PM2 avec notre monitoring intégré dans le Manager pour une visibilité complète sur les performances de votre VPS.

Tags : Node.js PM2 Nginx déploiement production
Partager :