Déploiement d'une application JavaScript sur VPS : guide étape par étape

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 déployer une application JavaScript sur un VPS ?

Développer une application web moderne en JavaScript (Node.js) n'est que la première moitié du travail. La seconde partie, tout aussi importante, est le déploiement, c'est-à-dire la mise en ligne de votre projet sur un serveur réel accessible sur Internet. L'utilisation d'un serveur privé virtuel (VPS) vous donne un contrôle total sur l'environnement, contrairement à un hébergement mutualisé. Vous pouvez configurer le serveur selon vos besoins, installer toutes les dépendances nécessaires et garantir des performances élevées.

Dans ce guide, nous allons détailler étape par étape le processus de déploiement d'une application JavaScript (Node.js) typique sur un VPS. Nous aborderons toutes les étapes : de la configuration initiale du serveur au lancement de l'application en mode production en utilisant le gestionnaire de processus PM2 et le serveur proxy inverse Nginx. Cet article est destiné aux développeurs déjà familiers avec les bases de Node.js et la ligne de commande Linux.

1. Préparation du VPS et configuration initiale

La première étape consiste à louer un VPS auprès d'un fournisseur (DigitalOcean, Linode, Vultr ou leurs équivalents russes). L'offre minimale recommandée est : 1 vCPU, 1-2 Go de RAM. Le système d'exploitation est Ubuntu 22.04 LTS (ou plus récent).

1.1. Connexion au serveur via SSH

Après avoir obtenu l'adresse IP et le mot de passe root, connectez-vous au serveur depuis votre terminal :

ssh root@votre_adresse_IP_serveur

Si vous utilisez une clé SSH (recommandé), spécifiez le chemin vers la clé privée :

ssh -i ~/.ssh/id_rsa root@votre_adresse_IP_serveur

1.2. Création d'un utilisateur et sécurité de base

Ne travaillez jamais constamment en tant que root. Créez un nouvel utilisateur et accordez-lui les droits sudo :

adduser monutilisateurusermod -aG sudo monutilisateur

Ensuite, configurez la clé SSH pour le nouvel utilisateur (copiez la clé publique depuis votre machine locale) et désactivez la connexion par mot de passe dans le fichier /etc/ssh/sshd_config :

PasswordAuthentication no

Redémarrez le service SSH : sudo systemctl restart sshd.

1.3. Installation des logiciels nécessaires

Mettez à jour le gestionnaire de paquets et installez Node.js (nous recommandons la version LTS via NodeSource), Git et Nginx :

sudo apt update && sudo apt upgrade -ycurl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -sudo apt install -y nodejs git nginx

Vérifiez les versions : node -v et npm -v.

2. Clonage du dépôt et installation des dépendances

Maintenant que le serveur est prêt, transférons le code de votre application.

2.1. Clonage du projet

Accédez au répertoire personnel de l'utilisateur et clonez le dépôt depuis GitHub (ou un autre hébergeur Git) :

cd /home/monutilisateurgit clone https://github.com/votre_login/votre_depot.git monappcd monapp

2.2. Installation des dépendances et test de lancement

Installez tous les paquets npm listés dans package.json :

npm install

Si votre projet utilise des variables d'environnement (par exemple, pour la base de données ou les clés API), créez un fichier .env et remplissez-le :

nano .env

Exemple de contenu :

PORT=3000DATABASE_URL=mongodb://localhost:27017/mabdNODE_ENV=production

Lancez l'application manuellement pour vérifier qu'elle fonctionne :

node app.js

Vérifiez l'accessibilité via curl http://localhost:3000 ou ouvrez dans un navigateur http://votre_IP:3000 (après avoir autorisé le port dans le pare-feu). Si tout fonctionne, arrêtez le processus (Ctrl+C).

3. Configuration du gestionnaire de processus PM2

Une application lancée via node app.js s'arrêtera dès que vous fermerez la session SSH. Pour un fonctionnement permanent, on utilise PM2 — un gestionnaire de processus pour Node.js qui redémarre automatiquement l'application en cas de crash et gère

Blogs

Book Recommendations