Bereitstellung einer Kotlin-Anwendung auf VPS: Schritt-für-Schritt-Anleitung von A bis Z

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

Einleitung: Warum die Bereitstellung einer Kotlin-Anwendung einen besonderen Ansatz erfordert

\n

Die Entwicklung mit Kotlin ist nur die eine Hälfte des Erfolgs. Die zweite Hälfte ist die fachgerechte Bereitstellung (Deployment) Ihrer Anwendung auf einem entfernten Server. Ohne diesen Schritt bleibt Ihr Code lediglich ein lokales Projekt, das für Benutzer nicht zugänglich ist.

\n

In dieser Anleitung werden wir den vollständigen Bereitstellungszyklus einer Kotlin-Anwendung auf einem VPS (Virtual Private Server) durchgehen. Sie erfahren, wie Sie das Projekt in eine ausführbare JAR-Datei packen, die Serverumgebung konfigurieren, die Anwendung als Dienst starten und ihren stabilen Betrieb sicherstellen. Der Artikel richtet sich an Entwickler, die bereits Grundkenntnisse in Kotlin und Linux haben.

\n\n

1. Projektvorbereitung und Erstellung der JAR-Datei

\n

Bevor Sie den Code auf den Server hochladen, muss die Anwendung in ein einheitliches Artefakt gebaut werden. Für Kotlin-Projekte, die mit Spring Boot oder Ktor erstellt wurden, ist das Standardformat die JAR-Datei (Java Archive).

\n\n

1.1. Konfiguration von build.gradle.kts

\n

Stellen Sie sicher, dass in Ihrer Datei build.gradle.kts das Plugin zum Erstellen einer ausführbaren JAR vorhanden ist. Für Spring Boot sieht das so aus:

\n
plugins {\n    kotlin("jvm") version "1.9.22"\n    id("org.springframework.boot") version "3.2.2"\n    id("io.spring.dependency-management") version "1.1.4"\n}\n\ndependencies {\n    implementation("org.springframework.boot:spring-boot-starter-web")\n    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")\n}\n
\n

Für reines Ktor (ohne Spring) verwenden Sie das Plugin application:

\n
plugins {\n    kotlin("jvm") version "1.9.22"\n    application\n}\n\napplication {\n    mainClass.set("com.example.ApplicationKt")\n}\n
\n\n

1.2. Erstellung des Projekts

\n

Führen Sie den Build-Befehl im Stammverzeichnis des Projekts aus:

\n
./gradlew clean build
\n

Nach erfolgreichem Build erscheint im Verzeichnis build/libs/ die Datei app-0.0.1-SNAPSHOT.jar (der Name hängt von der Konfiguration ab). Kopieren Sie diese auf Ihren lokalen Computer.

\n
Wichtig: Stellen Sie bei Ktor-Anwendungen sicher, dass in der Datei src/main/resources/application.conf der richtige Port (normalerweise 8080) und der Betriebsmodus angegeben sind.
\n\n

2. Konfiguration des VPS-Servers

\n

Für die Bereitstellung benötigen wir einen VPS mit installiertem Betriebssystem Ubuntu 22.04 LTS. Es wird vorausgesetzt, dass Sie SSH-Zugriff und Superuser-Rechte (sudo) haben.

\n\n

2.1. Installation von Java (JRE)

\n

Kotlin wird in JVM-Bytecode kompiliert, daher muss auf dem Server unbedingt die Java Runtime Environment (JRE) Version 17 oder höher installiert sein:

\n
sudo apt update\nsudo apt install openjdk-17-jre -y\njava -version
\n\n

2.2. Erstellen eines Benutzers für die Anwendung

\n

Aus Sicherheitsgründen wird empfohlen, die Anwendung nicht als root auszuführen. Erstellen wir einen separaten Benutzer:

\n
sudo useradd -m -s /bin/bash kotlinapp\nsudo passwd kotlinapp
\n\n

2.3. Hochladen der JAR-Datei auf den Server

\n

Verwenden Sie SCP, um die Datei von Ihrem lokalen Rechner auf den VPS zu kopieren:

\n
scp build/libs/app-0.0.1-SNAPSHOT.jar kotlinapp@your-server-ip:/home/kotlinapp/app.jar
\n\n

3. Starten der Anwendung und Konfiguration von Systemd

\n

Damit die Anwendung automatisch beim Systemstart startet und nicht bei Verlust der SSH-Verbindung abstürzt, konfigurieren wir sie als Systemd-Dienst.

\n\n

3.1. Manueller Start (zum Testen)

\n

Verbinden Sie sich als Benutzer kotlinapp mit dem Server und führen Sie Folgendes aus:

\n
cd /home/kotlinapp\njava -jar app.jar
\n

Wenn die Anwendung startet und auf Port 8080 antwortet, fahren Sie mit dem nächsten Schritt fort. Stoppen Sie den Prozess (Strg+C).

\n\n

3.2. Erstellen der Systemd-Unit-Datei

\n

Erstellen Sie die Dienstdatei:

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

Fügen Sie den folgenden Inhalt ein:

\n
[Unit]\nDescription=Kotlin Application Service\nAfter=net                

Blogs

Buchempfehlungen