Ihr Kotlin-Code funktioniert lokal. Was nun?
\n\nSie haben eine tolle Anwendung in Kotlin geschrieben. Sie funktioniert perfekt auf Ihrem Laptop, Tests bestehen, Endpunkte antworten sofort. Aber die wahre Magie beginnt erst, wenn die Anwendung das Licht der Welt erblickt – auf einem echten Server, wo die Benutzer sie sehen.
\n\nDie Bereitstellung von Kotlin-Anwendungen ist nicht einfach nur "eine JAR-Datei auf den Server werfen". Es ist eine ganze Wissenschaft, die die Wahl der Infrastruktur, die Einrichtung der Umgebung, die Gewährleistung von Sicherheit und Ausfallsicherheit umfasst. In diesem Artikel werden wir die drei gängigsten Ansätze durchgehen: klassisches VPS, modernes Docker und flexible Cloud-Plattformen. Sie erfahren, wie Sie Kotlin-Anwendungen mit jeder dieser Optionen bereitstellen, erhalten fertige Codebeispiele und verstehen, welcher Weg für Ihr Projekt am besten geeignet ist.
\n\nVorbereitung: Was Sie vor der Bereitstellung von Kotlin wissen müssen
\n\nBevor wir in die Details eintauchen, stellen wir sicher, dass wir die Grundlagen haben. Für die Bereitstellung einer Kotlin-Anwendung benötigen Sie:
\n\n- \n
- Ein erstelltes Artefakt – normalerweise eine JAR-Datei (für Spring Boot, Ktor) oder eine WAR-Datei (für ältere Java EE-Projekte). Kotlin wird in JVM-Bytecode kompiliert, daher funktionieren alle Standard-Java-Tools einwandfrei. \n
- Java Runtime Environment (JRE) – mindestens Version 11, besser 17 oder 21. Kotlin nutzt aktiv die Funktionen neuerer Java-Versionen. \n
- Ein Build-System – Gradle oder Maven. Wir werden Gradle verwenden, da es der De-facto-Standard für Kotlin-Projekte ist. \n
Beispiel für einen einfachen Befehl zum Erstellen einer Kotlin-Anwendung:
\n\n./gradlew clean build\n\nNach der Ausführung erscheint im Ordner build/libs/ eine JAR-Datei, die bereit zum Ausführen ist.
Bereitstellung von Kotlin auf VPS: Ein Klassiker, der funktioniert
\n\nEin virtueller privater Server (VPS) ist wie eine eigene Wohnung. Sie haben die volle Kontrolle über die Umgebung, tragen aber auch die gesamte Verantwortung für Reinigung und Sicherheit. Dieser Ansatz ist ideal für kleinere Projekte, Startups oder wenn Sie maximale Flexibilität benötigen.
\n\nVPS-Auswahl und Server-Einrichtung
\n\nFür Kotlin-Anwendungen eignet sich jeder VPS mit Linux (Ubuntu 22.04 LTS ist eine ausgezeichnete Wahl). Mindestanforderungen: 1-2 GB RAM, 20-30 GB SSD. Wir empfehlen Anbieter mit gutem Support: DigitalOcean, Vultr, Hetzner oder Timeweb (für russische Benutzer).
\n\nNach dem Kauf des Servers aktualisieren wir zuerst die Pakete und installieren Java:
\n\nsudo apt update && sudo apt upgrade -y\nsudo apt install openjdk-17-jre-headless -y\njava -version\n\nJetzt erstellen wir einen einfachen Benutzer zum Ausführen der Anwendung (niemals als root ausführen!):
\n\nsudo useradd -m -s /bin/bash kotlinapp\nsudo passwd kotlinapp\n\nStarten der Kotlin-Anwendung auf VPS
\n\nKopieren Sie die JAR-Datei über SCP oder SFTP auf den Server:
\n\nscp build/libs/myapp-1.0.0.jar kotlinapp@ihr-server:/home/kotlinapp/app.jar\n\nStarten Sie nun die Anwendung. Der Einfachheit halber verwenden wir nohup, damit der Prozess beim Schließen von SSH nicht stirbt:
\n\nnohup java -jar /home/kotlinapp/app.jar --server.port=8080 &\n\nAber das ist nur der erste Schritt. Im echten Leben benötigen Sie:
\n- \n
- Einen Systemd-Dienst – für den automatischen Neustart der Anwendung nach Abstürzen und beim Serverstart. \n
- Nginx – als Reverse Proxy für HTTPS, Lastverteilung und statische Dateien. \n
- Monitoring – zumindest einfaches Logging und Uptime-Prüfung. \n
Beispiel eines systemd-Dienstes für eine Kotlin-Anwendung (/etc/systemd/system/kotlinapp.service):
[Unit]\nDescription=Kotlin Application\nAfter=network.target\n\n[Service]\nUser=kotlinapp\nWorkingDirectory=/home/kotlinapp\nExecStart=/usr/bin/java -jar /home/kotlinapp/app.jar --server.port=8080\nRestart=always\nRestartSec=10\n\n[Install]\nWantedBy=multi-user.target