Introduction : Pourquoi le VPS est la solution idéale pour votre application Node.js ?
\nVous avez écrit une super application en JavaScript (Node.js), vous l'avez testée localement, et maintenant vous souhaitez qu'elle soit accessible sur Internet 24h/24 et 7j/7. L'hébergement mutualisé (shared hosting) ne convient souvent pas à Node.js en raison de ses limitations, et les services cloud (Heroku, Railway) peuvent être coûteux ou imprévisibles en termes de performances. Le serveur privé virtuel (VPS) est le juste milieu : contrôle total, hautes performances et prix abordable.
\nDans ce guide pas à pas, nous allons détailler le processus de déploiement d'une application JavaScript (Node.js) sur un VPS à partir de zéro. Vous apprendrez à configurer le serveur, installer les logiciels nécessaires, lancer l'application en toute sécurité et la rendre accessible via un nom de domaine. Tous les exemples de code sont fonctionnels et testés.
\n\n1. Préparation du serveur : configuration initiale du VPS
\nPour commencer, vous devrez louer un VPS auprès d'un fournisseur (DigitalOcean, Vultr, Timeweb, Selectel). Caractéristiques minimales : 1 vCPU, 1-2 Go de RAM, 20-30 Go SSD. Système d'exploitation : Ubuntu 22.04 LTS (la version la plus stable).
\n\n1.1. Connexion au serveur via SSH
\nAprès avoir reçu l'adresse IP et le mot de passe, connectez-vous au serveur via le terminal (Mac/Linux) ou PuTTY (Windows) :
\nssh root@votre_adresse_IP_serveur\nChangez immédiatement le mot de passe et créez un nouvel utilisateur (travailler en tant que root est une mauvaise pratique) :
\nadduser deploy_user\nusermod -aG sudo deploy_user\nsu - deploy_user\n\n1.2. Mise à jour du système et installation des paquets de base
\nsudo apt update && sudo apt upgrade -y\nsudo apt install -y curl git ufw build-essential\nConfigurez le pare-feu de base UFW (ne laissez que SSH et les ports que vous utiliserez) :
\nsudo ufw allow OpenSSH\nsudo ufw allow 80/tcp\nsudo ufw allow 443/tcp\nsudo ufw enable\n\n2. Installation de Node.js et du gestionnaire de processus PM2
\nPour faire fonctionner l'application JavaScript sur le serveur, nous avons besoin de Node.js. Utilisons le gestionnaire de versions officiel NodeSource pour installer la dernière version LTS :
\n\n2.1. Installation de Node.js (v20 LTS)
\ncurl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -\nsudo apt install -y nodejs\nVérifiez l'installation :
\nnode -v # v20.x.x\nnpm -v # 10.x.x\n\n2.2. Installation et configuration de PM2
\nPM2 est un gestionnaire de processus avancé pour Node.js. Il redémarre automatiquement l'application en cas de panne, gère les journaux et permet d'exécuter plusieurs instances (clustering).
\nsudo npm install -g pm2\nConfigurez le démarrage automatique de PM2 au redémarrage du serveur :
\npm2 startup systemd\nsudo env PATH=$PATH:/usr/bin pm2 startup systemd -u deploy_user --hp /home/deploy_user\n\n3. Déploiement de l'application et lancement via PM2
\nNous sommes maintenant prêts à transférer votre application JavaScript sur le serveur. Il existe deux méthodes populaires : via Git (recommandé) ou via SCP/FileZilla.
\n\n3.1. Clonage du dépôt (Git)
\ncd /home/deploy_user\ngit clone https://github.com/votre_nom_utilisateur/votre_depot.git myapp\ncd myapp\nInstallez les dépendances et construisez le projet (si nécessaire) :
\nnpm install\n# S'il y a un script de build : npm run build\n\n3.2. Création du fichier de configuration .env
\nNe stockez jamais les secrets dans le code. Créez un fichier .env dans le dossier du projet :
\nnano .env\nExemple de contenu :
\nPORT=3000\nNODE_ENV=production\nDATABASE_URL=mongodb://localhost:27017/myapp\nJWT_SECRET=votre_cle_super_secrete\n\n3.3. Lancement de l'application via PM2
\nSupposons que le point d'entrée de votre application soit app.js ou server.js. Lancez-la :
pm2 start app.js --name "myapp"\nVérifiez le statut :
\npm2 status\npm2 logs myapp