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 étape par étape

Le développement en Kotlin n'est que la moitié du travail. Pour que votre application soit accessible aux utilisateurs, elle doit être déployée sur un serveur. Dans ce guide, nous allons examiner en détail le processus de déploiement d'une application Kotlin (JVM) sur un VPS (Virtual Private Server). Vous apprendrez à préparer le serveur, à compiler l'application, à configurer le démarrage automatique et à assurer une connexion HTTPS sécurisée. Cet article s'adresse aux développeurs familiers avec les bases de Kotlin et de Linux.



1. Préparation du serveur et de l'environnement

Avant de télécharger le code, il est nécessaire de préparer le VPS. Nous utiliserons Ubuntu 22.04 LTS. Connectez-vous au serveur via SSH :

ssh root@votre-ip-serveur

Mettez à jour les paquets et installez les composants nécessaires :

sudo apt update && sudo apt upgrade -ysudo apt install openjdk-17-jdk git nginx certbot python3-certbot-nginx -y

Vérifiez la version de Java :

java -version

Créons maintenant un utilisateur pour l'application (exécuter des processus en tant que root n'est pas sécurisé) :

sudo useradd -m -s /bin/bash kotlinappsudo usermod -aG sudo kotlinappsu - kotlinapp

Assurez-vous que l'utilisateur peut exécuter Java.



2. Compilation et téléchargement de l'application Kotlin

Considérons deux frameworks populaires : Ktor et Spring Boot. Les deux sont compilés en un fichier JAR exécutable. Exemple pour Ktor :

// build.gradle.kts (fragment)plugins {    kotlin("jvm") version "1.9.22"    application    id("io.ktor.plugin") version "2.3.7"}

application { mainClass.set("com.example.ApplicationKt")}

ktor { fatJar { archiveFileName.set("myapp.jar") }}

Compilez le fat JAR localement :

./gradlew buildFatJar

Téléchargez le JAR sur le serveur via SCP (exécutez sur la machine locale) :

scp build/libs/myapp.jar kotlinapp@votre-ip:/home/kotlinapp/app/

Sur le serveur, créez la structure :

mkdir -p /home/kotlinapp/app/logs


3. Configuration de systemd pour le démarrage automatique

Pour que l'application démarre automatiquement au lancement du serveur et redémarre en cas de panne, créons un service systemd. Créez le fichier /etc/systemd/system/kotlinapp.service :

sudo nano /etc/systemd/system/kotlinapp.service

Insérez la configuration suivante :

[Unit]Description=Kotlin Application ServiceAfter=network.target

[Service]User=kotlinappGroup=kotlinappWorkingDirectory=/home/kotlinapp/appExecStart=/usr/bin/java -jar myapp.jarRestart=alwaysRestartSec=10StandardOutput=append:/home/kotlinapp/app/logs/out.logStandardError=append:/home/kotlinapp/app/logs/err.logEnvironment="PORT=8080"

[Install]WantedBy=multi-user.target

Activez et démarrez le service :

sudo systemctl daemon-reloadsudo systemctl enable kotlinappsudo systemctl start kotlinapp

Vérifiez le statut :

sudo systemctl status kotlinapp

Les logs peuvent être consultés avec la commande :

journalctl -u kotlinapp -f


4. Configuration de Nginx et HTTPS (SSL)

Le serveur proxy Nginx redirigera les requêtes du port 80/443 vers le port 8080 de votre application Kotlin. Créez la configuration :

sudo nano /etc/nginx/sites-available/kotlinapp

Exemple de configuration :

server {    listen 80;    server_name yourdomain.com www.yourdomain.com;

location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }}

Activez le site et obtenez un certificat SSL :

sudo ln -s /etc/ngin                

Blogs

Book Recommendations