Déploiement d'une application Kotlin 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 Kotlin sur VPS : pas à pas de A à Z



Vous avez écrit une superbe application en Kotlin (Ktor, Spring Boot ou simplement un service console), et vous devez maintenant la lancer sur un vrai serveur. Dans cet article, nous allons parcourir le cycle complet de déploiement d'une application Kotlin sur un VPS : de l'achat du serveur et la configuration SSH au lancement via systemd et la connexion d'un domaine avec HTTPS. Tous les exemples sont fonctionnels et testés sur Ubuntu 22.04.



1. Préparation du VPS et connexion



Commencez par louer un VPS (par exemple, chez Timeweb, Selectel ou DigitalOcean). Configuration minimale requise : 1 vCPU, 1 Go de RAM, 20 Go SSD. Système d'exploitation : Ubuntu 22.04 LTS.



Après avoir obtenu l'adresse IP et le mot de passe root, connectez-vous via SSH :



ssh root@votre_adresse_ip_serveur


Mettez immédiatement le système à jour et créez un utilisateur non privilégié (travailler en root est une mauvaise pratique) :



apt update && apt upgrade -yadduser kotlinuserusermod -aG sudo kotlinusersu - kotlinuser


Configurez les clés SSH pour une connexion pratique et sécurisée :



ssh-keygen -t ed25519 -C "votre_email@example.com"ssh-copy-id kotlinuser@votre_adresse_ip_serveur


Désactivez maintenant la connexion par mot de passe dans /etc/ssh/sshd_config (ligne PasswordAuthentication no) et redémarrez SSH : sudo systemctl restart sshd.



2. Installation de Java (JRE/JDK) et construction de l'application



Les applications Kotlin fonctionnent sur la JVM. Installez OpenJDK 17 ou 21 (recommandé pour les projets modernes) :



sudo apt install openjdk-17-jdk -yjava -version


Maintenant, sur votre ordinateur local (où vous développez), construisez l'application en un fichier JAR. Pour Gradle (Ktor ou Spring Boot) :



./gradlew clean build


Le fichier JAR prêt se trouvera dans build/libs/. Par exemple, myapp-1.0.0.jar. Téléchargez-le sur le serveur :



scp build/libs/myapp-1.0.0.jar kotlinuser@votre_adresse_ip_serveur:~/app/


Créez la structure de dossiers sur le serveur :



mkdir -p ~/app/logs ~/app/config


Placez les fichiers de configuration (application.conf, application.yml) dans ~/app/config/. Vérifiez que l'application démarre manuellement :



cd ~/appjava -jar myapp-1.0.0.jar --spring.config.location=file:./config/


Si tout fonctionne, passons au démarrage automatique.



3. Configuration de systemd pour le démarrage automatique



Pour que l'application démarre automatiquement après un redémarrage du serveur et ne plante pas en cas d'erreurs, créons un service systemd.



Créez le fichier /etc/systemd/system/kotlin-app.service :



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


Insérez le contenu suivant (remplacez les chemins par les vôtres) :



[Unit]Description=Service d'application KotlinAfter=network.target

[Service]Type=simpleUser=kotlinuserWorkingDirectory=/home/kotlinuser/appExecStart=/usr/bin/java -jar /home/kotlinuser/app/myapp-1.0.0.jar --spring.config.location=file:/home/kotlinuser/app/config/Restart=on-failureRestartSec=10StandardOutput=append:/home/kotlinuser/app/logs/app.logStandardError=append:/home/kotlinuser/app/logs/error.log

[Install]WantedBy=multi-user.target


Explication des paramètres clés :

  • User — l'utilisateur sous lequel exécuter (pas root) ;
  • ExecStart — la commande de lancement complète avec indication du fichier de configuration ;
  • Restart=on-failure — redémarrage automatique en cas de panne ;
  • StandardOutput/Error — journalisation dans des fichiers.


Activez le service :



sudo systemctl daemon-reloadsudo systemctl enable kotlin-app.servicesudo systemctl start kotlin-app.service


Vérifiez le statut :



sudo systemctl status kotlin-app.service

Blogs

Book Recommendations