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

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



Développer en Kotlin n'est que la moitié du travail. Tôt ou tard, la question se pose : comment transférer l'application de l'environnement local vers un serveur réel ? Dans cet article, nous allons détailler le déploiement d'une application Kotlin (avec Spring Boot comme exemple) sur un VPS. Vous apprendrez à préparer le serveur, à construire le fichier JAR, à configurer le démarrage automatique et à assurer une connexion sécurisée via HTTPS. Ce guide convient aussi bien aux débutants qu'aux développeurs souhaitant systématiser leurs connaissances.



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



Avant de charger le code, il faut préparer le serveur. Nous recommandons d'utiliser Ubuntu 22.04 LTS ou une version plus récente. Connectez-vous au serveur via SSH :



ssh root@votre-ip-serveur


Mettez à jour la base de paquets et installez Java (Kotlin compile en bytecode JVM, nous avons donc besoin de JDK 17 ou 21) :



sudo apt update && sudo apt upgrade -ysudo apt install openjdk-17-jdk -yjava -version


Assurez-vous que la version de Java correspond à votre build. Installez également Git (si vous utilisez un dépôt) et les utilitaires pour travailler avec les archives :



sudo apt install git unzip curl -y


Pour travailler avec un projet Kotlin sur le serveur, il n'est pas nécessaire d'installer le compilateur Kotlin lui-même — nous effectuerons la construction localement ou via CI/CD. Cependant, si vous prévoyez de compiler sur le serveur, ajoutez SDKMAN! et Kotlin :



curl -s "https://get.sdkman.io" | bashsource "$HOME/.sdkman/bin/sdkman-init.sh"sdk install kotlin


Important : À cette étape, configurez également le pare-feu (UFW) pour une sécurité de base :



sudo ufw allow OpenSSHsudo ufw allow 8080/tcp  # port de l'applicationsudo ufw enable


2. Construction de l'application Kotlin et transfert vers le serveur



Considérons un projet typique Spring Boot avec Kotlin. Effectuez la construction du fichier JAR localement (ou sur le serveur si vous avez cloné le dépôt). À la racine du projet, exécutez :



./gradlew clean bootJar


Ou, si vous utilisez Maven :



mvn clean package


Après la construction, dans le dossier build/libs/ (Gradle) ou target/ (Maven), un fichier du type app-0.0.1-SNAPSHOT.jar apparaîtra. Copiez-le sur le serveur avec SCP :



scp build/libs/app-0.0.1-SNAPSHOT.jar root@votre-ip:/opt/myapp/app.jar


Créez un répertoire pour l'application sur le serveur et déplacez le JAR :



sudo mkdir -p /opt/myappsudo mv app.jar /opt/myapp/


Vérifiez que le JAR se lance manuellement :



cd /opt/myappjava -jar app.jar --server.port=8080


Si l'application démarre et répond sur le port 8080 — tout va bien. Arrêtez-la (Ctrl+C) et passez à la configuration du démarrage permanent.



3. Configuration de systemd pour le démarrage automatique et la surveillance



Pour que l'application démarre automatiquement au redémarrage du serveur et se rétablisse après des pannes, créons un service systemd. Créez le fichier :



sudo nano /etc/systemd/system/kotlin-app.service


Insérez le modèle suivant (remplacez les paramètres selon votre application) :



[Unit]Description=Kotlin Spring Boot ApplicationAfter=network.target

[Service]Type=simpleUser=rootWorkingDirectory=/opt/myappExecStart=/usr/bin/java -jar /opt/myapp/app.jar --server.port=8080Restart=on-failureRestartSec=10StandardOutput=journalStandardError=journal

[Install]WantedBy=multi-user.target


Rechargez la configuration de systemd et démarrez le service :



sudo systemctl daemon-reloadsudo systemctl start kotlin-appsudo systemctl status kotlin-app


Si le statut est active (running) — tout fonctionne. Ajoutez le service au démarrage automatique :



sudo systemctl enable kotlin-app

Blogs

Book Recommendations