Installer Node.js sur votre VPS Linux
Ce guide vous explique comment installer Node.js et npm sur votre VPS Linux, que vous utilisiez Ubuntu, Debian, CentOS ou Rocky Linux. Nous verrons plusieurs méthodes d'installation, y compris l'utilisation de nvm (Node Version Manager) pour gérer facilement plusieurs versions de Node.js.
📋 Avant de commencer
✅ Un VPS Linux (Ubuntu, Debian, CentOS, Rocky Linux) ✅ Un accès SSH avec privilèges sudo ✅ Une connexion Internet stable ✅ Au moins 1 GB de RAM disponible
Installer Node.js avec nvm (Recommandé)
nvm (Node Version Manager) est la méthode recommandée car elle permet de gérer plusieurs versions de Node.js facilement.
Avantages de nvm :
- Installer plusieurs versions de Node.js
- Basculer facilement entre les versions
- Installer Node.js sans privilèges root
- Gérer les versions par projet
Télécharger et installer nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Charger nvm dans votre session
source ~/.bashrc
source ~/.zshrc
nvm --version
Installer Node.js
nvm install --lts
# Installer Node.js 20
nvm install 20
# Installer Node.js 18
nvm install 18
# Installer Node.js 16
nvm install 16
nvm alias default 20
Vérifier l'installation
Version de Node.js
node --version
Version de npm
npm --version
✅ Node.js et npm sont maintenant installés via nvm !
Commandes nvm utiles :
| Commande | Description |
|---|---|
nvm list | Lister les versions installées |
nvm ls-remote | Lister toutes les versions disponibles |
nvm use 20 | Utiliser une version spécifique |
nvm uninstall 16 | Désinstaller une version |
nvm current | Afficher la version actuelle |
Installation via le gestionnaire de paquets
Alternative à nvm : installation directe via les dépôts NodeSource.
Ubuntu et Debian
# Mettre à jour les paquets
sudo apt update
# Installer curl si nécessaire
sudo apt install -y curl
# Ajouter le dépôt NodeSource pour Node.js 20
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
# Installer Node.js et npm
sudo apt install -y nodejs
💡 Astuce : Pour d'autres versions, remplacez setup_20.x par setup_18.x (Node.js 18) ou setup_21.x (Node.js 21).
node --version
npm --version
CentOS, Rocky Linux et AlmaLinux
# Mettre à jour les paquets
sudo dnf update -y # ou yum update -y
# Ajouter le dépôt NodeSource pour Node.js 20
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
# Installer Node.js et npm
sudo dnf install -y nodejs # ou yum install -y nodejs
node --version
npm --version
Configuration post-installation
Configurer npm sans sudo
Par défaut, npm nécessite sudo pour les installations globales. Configurons npm pour utiliser un répertoire local.
# Créer un répertoire pour les packages globaux
mkdir ~/.npm-global
# Configurer npm pour utiliser ce répertoire
npm config set prefix '~/.npm-global'
# Ajouter le répertoire au PATH
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Mettre à jour npm
npm install -g npm@latest
Gestionnaires de paquets alternatifs
💡 Astuce : Pour des installations plus rapides, vous pouvez utiliser des gestionnaires de paquets alternatifs.
npm install -g pnpm
npm install -g yarn
Installer les outils de développement
Build tools
sudo apt install -y build-essential
sudo dnf groupinstall "Development Tools" -y
Git
sudo apt install -y git
sudo dnf install -y git
Tester votre installation
Créer une application Node.js simple
mkdir ~/test-nodejs
cd ~/test-nodejs
nano server.js
const http = require('http');
const hostname = '0.0.0.0';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello from Node.js on AtmosNode VPS!\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
ℹ️ Enregistrez et quittez avec Ctrl+X, puis Y, puis Entrée.
Lancer le serveur
node server.js
curl http://localhost:3000
✅ Vous devriez voir : Hello from Node.js on AtmosNode VPS!
Accès depuis l'extérieur
⚠️ Accès depuis Internet
Pour accéder à votre application depuis Internet, vous devez ouvrir le port dans votre firewall.
sudo ufw allow 3000/tcp
sudo firewall-cmd --permanent --add-port=3000/tcp
sudo firewall-cmd --reload
Gérer les processus avec PM2
PM2 est un gestionnaire de processus pour maintenir vos applications Node.js en ligne 24/7.
Fonctionnalités de PM2 :
- Maintenir vos applications en ligne 24/7
- Redémarrer automatiquement en cas de crash
- Gérer les logs
- Démarrer les applications au boot du serveur
- Mode cluster pour utiliser tous les cœurs CPU
Installer PM2
npm install -g pm2
Utiliser PM2
Démarrer une application
pm2 start server.js
Lister les applications
pm2 list
Voir les logs
pm2 logs
Arrêter une application
pm2 stop server
Redémarrer une application
pm2 restart server
Supprimer une application
pm2 delete server
Démarrer PM2 au boot
pm2 startup
pm2 save
Commandes PM2 avancées :
| Commande | Description |
|---|---|
pm2 monit | Dashboard interactif |
pm2 status | Statistiques système |
pm2 start server.js -i max | Mode cluster (tous les cœurs) |
pm2 reload all | Redémarrage sans interruption |
Bonnes pratiques de sécurité
Ne jamais exécuter Node.js en tant que root
sudo adduser nodejs
sudo su - nodejs
Utiliser un reverse proxy (Nginx)
# Ubuntu/Debian
sudo apt install -y nginx
# CentOS/Rocky
sudo dnf install -y nginx
server {
listen 80;
server_name votre-domaine.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
sudo ln -s /etc/nginx/sites-available/nodejs-app /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Sécuriser les variables d'environnement
npm install dotenv
DATABASE_URL=your-database-url
API_KEY=your-secret-key
require('dotenv').config();
const apiKey = process.env.API_KEY;
Mettre à jour régulièrement
Vérifier les vulnérabilités
npm audit
Corriger automatiquement
npm audit fix
Mettre à jour Node.js avec nvm
nvm install node --reinstall-packages-from=current
Checklist de vérification
Vérifiez que vous avez bien :
✅ Node.js est installé et fonctionne (node --version)
✅ npm est installé et fonctionne (npm --version)
✅ nvm est configuré pour gérer les versions (si utilisé)
✅ Les outils de build sont installés
✅ PM2 est installé pour la gestion des processus
✅ Un reverse proxy Nginx est configuré
✅ Les applications Node.js ne s'exécutent pas en tant que root
✅ Les packages npm sont à jour sans vulnérabilités
✅ Les variables d'environnement sensibles sont sécurisées
✅ PM2 démarre automatiquement au boot du système
🎓 Ressources utiles
Documentation officielle :
- Node.js : https://nodejs.org/docs
- npm : https://docs.npmjs.com
- nvm : https://github.com/nvm-sh/nvm
- PM2 : https://pm2.keymetrics.io/docs
- Node.js Best Practices : https://github.com/goldbergyoni/nodebestpractices
💬 Besoin d'aide ?
Si vous rencontrez des difficultés :
🎉 Félicitations !
Node.js est maintenant installé et configuré sur votre VPS ! Vous êtes prêt à développer et déployer vos applications JavaScript côté serveur.

