Bereitstellung einer Kotlin-Anwendung auf einem VPS: Schritt-für-Schritt-Anleitung

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Bereitstellung einer Kotlin-Anwendung auf einem VPS: Schritt-für-Schritt-Anleitung

Die Entwicklung in Kotlin ist nur die halbe Miete. Damit Ihre Anwendung für Benutzer verfügbar wird, muss sie auf einem Server bereitgestellt werden. In dieser Anleitung betrachten wir detailliert den Prozess der Bereitstellung einer Kotlin (JVM)-Anwendung auf einem VPS (Virtual Private Server). Sie erfahren, wie Sie den Server vorbereiten, die Anwendung bauen, den Autostart konfigurieren und eine sichere HTTPS-Verbindung gewährleisten. Der Artikel richtet sich an Entwickler, die mit den Grundlagen von Kotlin und Linux vertraut sind.



1. Vorbereitung des Servers und der Umgebung

Bevor Sie Code hochladen, müssen Sie den VPS vorbereiten. Wir verwenden Ubuntu 22.04 LTS. Verbinden Sie sich per SSH mit dem Server:

ssh root@ihre-server-ip

Aktualisieren Sie die Pakete und installieren Sie die notwendigen Komponenten:

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

Überprüfen Sie die Java-Version:

java -version

Jetzt erstellen wir einen Benutzer für die Anwendung (Prozesse als root auszuführen ist unsicher):

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

Stellen Sie sicher, dass der Benutzer Java ausführen kann.



2. Bauen und Hochladen der Kotlin-Anwendung

Wir betrachten zwei beliebte Frameworks: Ktor und Spring Boot. Beide werden in eine ausführbare JAR-Datei gebaut. Beispiel für Ktor:

// build.gradle.kts (Ausschnitt)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") }}

Bauen Sie das fat JAR lokal:

./gradlew buildFatJar

Laden Sie das JAR per SCP auf den Server hoch (auf dem lokalen Rechner ausführen):

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

Erstellen Sie auf dem Server die Verzeichnisstruktur:

mkdir -p /home/kotlinapp/app/logs


3. Konfiguration von systemd für den Autostart

Damit die Anwendung automatisch beim Serverstart startet und bei Abstürzen neu gestartet wird, erstellen wir einen systemd-Dienst. Erstellen Sie die Datei /etc/systemd/system/kotlinapp.service:

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

Fügen Sie die folgende Konfiguration ein:

[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

Aktivieren und starten Sie den Dienst:

sudo systemctl daemon-reloadsudo systemctl enable kotlinappsudo systemctl start kotlinapp

Überprüfen Sie den Status:

sudo systemctl status kotlinapp

Logs können Sie mit folgendem Befehl ansehen:

journalctl -u kotlinapp -f


4. Konfiguration von Nginx und HTTPS (SSL)

Der Proxy-Server Nginx leitet Anfragen von Port 80/443 an Port 8080 Ihrer Kotlin-Anwendung weiter. Erstellen Sie die Konfiguration:

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

Beispielkonfiguration:

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; }}

Aktivieren Sie die Seite und holen Sie ein SSL-Zertifikat:

sudo ln -s /etc/ngin                

Blogs

Buchempfehlungen