Déploiement d'une application Java 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

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



Développer une application Java n'est que la moitié du travail. La seconde partie, tout aussi importante, est son déploiement sur un serveur. De nombreux développeurs rencontrent des difficultés lors du transfert du code de leur machine locale vers un VPS distant. Dans cet article, nous allons détailler le processus complet de déploiement d'une application Java (avec Spring Boot comme exemple) sur un serveur privé virtuel (VPS) sous Ubuntu 22.04. Vous apprendrez à configurer l'environnement, builder le projet, le lancer en tant que service et assurer un accès sécurisé via Nginx et SSL.



1. Préparation du VPS et installation des logiciels nécessaires



Avant de charger le code, il faut préparer le serveur. Nous utiliserons Ubuntu 22.04 LTS. Connectez-vous au serveur via SSH :



ssh root@votre-adresse-ip


Mettez à jour le gestionnaire de paquets et installez les utilitaires de base :



apt update && apt upgrade -yapt install curl git -y


Installons maintenant OpenJDK 17 (version recommandée pour la plupart des projets modernes) :



apt install openjdk-17-jdk -y


Vérifiez l'installation :



java -version


Vous devriez voir quelque chose comme :



openjdk version "17.0.9" 2023-10-17


Ensuite, installons Maven pour builder le projet (si vous utilisez Gradle, remplacez les commandes en conséquence) :



apt install maven -ymvn -version


La préparation de l'environnement de base est terminée.



2. Build et téléchargement de l'application Java sur le serveur



Buildez votre application Java localement. Accédez au dossier racine du projet et exécutez :



mvn clean package -DskipTests


Après un build réussi, un fichier JAR apparaîtra dans le dossier target (par exemple, myapp-0.0.1-SNAPSHOT.jar). Il faut maintenant le télécharger sur le serveur. Utilisez scp (à exécuter depuis votre machine locale) :



scp target/myapp-0.0.1-SNAPSHOT.jar root@votre-adresse-ip:/opt/myapp/


Sur le serveur, créez un répertoire pour l'application et déplacez le fichier :



mkdir -p /opt/myappmv myapp-0.0.1-SNAPSHOT.jar /opt/myapp/myapp.jar


Vérifiez que le fichier JAR est bien présent et lancez-le manuellement pour un test :



cd /opt/myappjava -jar myapp.jar


Si l'application démarre sans erreur, passez à l'étape suivante.



3. Configuration de systemd pour un démarrage automatique



Pour que l'application démarre automatiquement au démarrage du système et redémarre en cas de panne, créons un service systemd.



Créez le fichier de service :



nano /etc/systemd/system/myapp.service


Insérez le contenu suivant (remplacez youruser par le nom d'utilisateur sous lequel l'application doit s'exécuter, ou laissez root) :



[Unit]Description=My Java Spring Boot ApplicationAfter=network.target

[Service]User=rootWorkingDirectory=/opt/myappExecStart=/usr/bin/java -jar /opt/myapp/myapp.jarSuccessExitStatus=143Restart=alwaysRestartSec=10

[Install]WantedBy=multi-user.target


Explication des paramètres :

  • After=network.target — le service démarre après la mise en place du réseau.
  • Restart=always — redémarrage automatique en cas de panne.
  • RestartSec=10 — pause de 10 secondes avant le redémarrage.
  • SuccessExitStatus=143 — gestion correcte du signal d'arrêt.


Activez et démarrez maintenant le service :



systemctl daemon-reloadsystemctl enable myappsystemctl start myapp


Vérifiez le statut :



systemctl status myapp


Vous devriez voir Active: active (running). Désormais, votre application démarrera

Blogs

Book Recommendations