Déploiement d'une application JavaScript sur VPS : guide pas à pas de A à Z

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction : Pourquoi le VPS est la solution idéale pour votre application Node.js ?

\n

Vous 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.

\n

Dans 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\n

1. Préparation du serveur : configuration initiale du VPS

\n

Pour 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\n

1.1. Connexion au serveur via SSH

\n

Après avoir reçu l'adresse IP et le mot de passe, connectez-vous au serveur via le terminal (Mac/Linux) ou PuTTY (Windows) :

\n
ssh root@votre_adresse_IP_serveur
\n

Changez immédiatement le mot de passe et créez un nouvel utilisateur (travailler en tant que root est une mauvaise pratique) :

\n
adduser deploy_user\nusermod -aG sudo deploy_user\nsu - deploy_user
\n\n

1.2. Mise à jour du système et installation des paquets de base

\n
sudo apt update && sudo apt upgrade -y\nsudo apt install -y curl git ufw build-essential
\n

Configurez le pare-feu de base UFW (ne laissez que SSH et les ports que vous utiliserez) :

\n
sudo ufw allow OpenSSH\nsudo ufw allow 80/tcp\nsudo ufw allow 443/tcp\nsudo ufw enable
\n\n

2. Installation de Node.js et du gestionnaire de processus PM2

\n

Pour 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\n

2.1. Installation de Node.js (v20 LTS)

\n
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -\nsudo apt install -y nodejs
\n

Vérifiez l'installation :

\n
node -v   # v20.x.x\nnpm -v    # 10.x.x
\n\n

2.2. Installation et configuration de PM2

\n

PM2 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).

\n
sudo npm install -g pm2
\n

Configurez le démarrage automatique de PM2 au redémarrage du serveur :

\n
pm2 startup systemd\nsudo env PATH=$PATH:/usr/bin pm2 startup systemd -u deploy_user --hp /home/deploy_user
\n\n

3. Déploiement de l'application et lancement via PM2

\n

Nous 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\n

3.1. Clonage du dépôt (Git)

\n
cd /home/deploy_user\ngit clone https://github.com/votre_nom_utilisateur/votre_depot.git myapp\ncd myapp
\n

Installez les dépendances et construisez le projet (si nécessaire) :

\n
npm install\n# S'il y a un script de build : npm run build
\n\n

3.2. Création du fichier de configuration .env

\n

Ne stockez jamais les secrets dans le code. Créez un fichier .env dans le dossier du projet :

\n
nano .env
\n

Exemple de contenu :

\n
PORT=3000\nNODE_ENV=production\nDATABASE_URL=mongodb://localhost:27017/myapp\nJWT_SECRET=votre_cle_super_secrete
\n\n

3.3. Lancement de l'application via PM2

\n

Supposons que le point d'entrée de votre application soit app.js ou server.js. Lancez-la :

\n
pm2 start app.js --name "myapp"
\n

Vérifiez le statut :

\n
pm2 status\npm2 logs myapp                

Blogs

Book Recommendations