Désactiver le préchargeur
Explorez, Apprenez et Maîtrisez

Documentation et Tutoriels - Hébergement Web Caramania.Ca

avec Nos Documentation et Tutoriels

Découvrez notre vaste bibliothèque de documentation et de tutoriels conçus pour vous aider à tirer le meilleur parti des services Caramania.Ca. Que vous soyez un débutant cherchant à configurer votre premier site web ou un utilisateur avancé désireux d'explorer des fonctionnalités plus complexes, nos guides pas à pas vous accompagneront à chaque étape. Simplifiez la gestion de vos services, trouvez des solutions rapides à vos problèmes, et approfondissez vos connaissances grâce à notre centre de ressources complet.

Documentation / Tutoriels Linux / Serveurs web / Installer Node.js sur Ubuntu, Debian et AlmaLinux
Bahanos
09/01/2025
Intermédiaire
20 minutes

Prérequis

  • Un serveur Ubuntu/Debian
  • Accès root ou sudo

Node.js permet d'exécuter JavaScript côté serveur. Ce guide couvre l'installation, la gestion avec PM2 et le déploiement en production avec Nginx en reverse proxy.

1. Installer Node.js via NodeSource

Node.js 24 LTS (Ubuntu/Debian)
# Télécharger et exécuter le script d'installation
curl -fsSL https://deb.nodesource.com/setup_24.x | bash -

# Installer Node.js
apt install -y nodejs

# Vérifier l'installation
node -v
npm -v
Node.js 24 LTS (AlmaLinux/Rocky Linux)
# Télécharger et exécuter le script d'installation NodeSource
curl -fsSL https://rpm.nodesource.com/setup_24.x | bash -

# Installer Node.js
dnf install -y nodejs

# Vérifier l'installation
node -v
npm -v

2. Alternative : Installer avec NVM

NVM (Node Version Manager) (Toutes distributions)
# Installer NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash

# Recharger le shell
source ~/.bashrc

# Installer Node.js
nvm install 24
nvm use 24
nvm alias default 24

# Vérifier
node -v

3. Créer une application de test

Application Express simple
# Créer le dossier
mkdir -p /var/www/monapp
cd /var/www/monapp

# Initialiser npm
npm init -y

# Installer Express
npm install express
app.js
// Créer le fichier app.js
cat > /var/www/monapp/app.js << 'EOF'
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;

app.get('/', (req, res) => {
    res.json({
        message: 'Bienvenue sur mon API Node.js!',
        timestamp: new Date().toISOString()
    });
});

app.get('/health', (req, res) => {
    res.json({ status: 'OK' });
});

app.listen(PORT, () => {
    console.log(`Serveur démarré sur le port ${PORT}`);
});
EOF

4. Installer PM2 (Process Manager)

PM2 pour la production
# Installer PM2 globalement
npm install -g pm2

# Démarrer l'application
cd /var/www/monapp
pm2 start app.js --name "monapp"

# Sauvegarder la liste des processus
pm2 save

# Démarrage automatique au boot
pm2 startup

5. Commandes PM2

Gestion avec PM2
# Lister les applications
pm2 list

# Statut détaillé
pm2 show monapp

# Logs
pm2 logs monapp
pm2 logs --lines 100

# Redémarrer
pm2 restart monapp

# Arrêter
pm2 stop monapp

# Supprimer
pm2 delete monapp

# Recharger sans downtime
pm2 reload monapp

# Monitoring en temps réel
pm2 monit

6. Configuration PM2 avancée

ecosystem.config.js
cat > /var/www/monapp/ecosystem.config.js << 'EOF'
module.exports = {
  apps: [{
    name: 'monapp',
    script: 'app.js',
    instances: 'max',  // Utilise tous les CPU
    exec_mode: 'cluster',
    env: {
      NODE_ENV: 'development',
      PORT: 3000
    },
    env_production: {
      NODE_ENV: 'production',
      PORT: 3000
    },
    // Logs
    log_file: '/var/log/pm2/monapp.log',
    error_file: '/var/log/pm2/monapp-error.log',
    merge_logs: true,
    // Restart automatique
    max_memory_restart: '500M',
    restart_delay: 5000
  }]
};
EOF

mkdir -p /var/log/pm2

# Démarrer avec la config
pm2 start ecosystem.config.js --env production

7. Configurer Nginx comme Reverse Proxy

Configuration Nginx
apt install -y nginx

cat > /etc/nginx/sites-available/monapp << 'EOF'
server {
    listen 80;
    server_name monapp.com www.monapp.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_set_header X-Forwarded-Proto $scheme;
        proxy_cache_bypass $http_upgrade;
    }
}
EOF

ln -s /etc/nginx/sites-available/monapp /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

8. SSL avec Let's Encrypt

Certbot
apt install -y certbot python3-certbot-nginx
certbot --nginx -d monapp.com -d www.monapp.com

9. Variables d'environnement

Fichier .env
# Créer un fichier .env
cat > /var/www/monapp/.env << 'EOF'
NODE_ENV=production
PORT=3000
DB_HOST=localhost
DB_USER=monapp
DB_PASS=motdepasse
SECRET_KEY=une_cle_secrete_tres_longue
EOF

# Installer dotenv
cd /var/www/monapp
npm install dotenv

# Dans app.js, ajouter en haut :
# require('dotenv').config();

10. Déploiement automatisé

Script de déploiement
cat > /var/www/monapp/deploy.sh << 'EOF'
#!/bin/bash
cd /var/www/monapp

echo "Pulling latest code..."
git pull origin main

echo "Installing dependencies..."
npm ci --production

echo "Restarting application..."
pm2 reload monapp

echo "Deployment complete!"
EOF

chmod +x /var/www/monapp/deploy.sh
Node.js en production !

Votre application Node.js est maintenant déployée avec PM2 et accessible via Nginx. Elle redémarrera automatiquement en cas de crash ou de reboot.

💬 Écrivez-nous sur Messenger !