Bereitstellung einer Kotlin-Anwendung auf 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

Deploy einer Kotlin-Anwendung auf VPS: Vollständige Schritt-für-Schritt-Anleitung



Die Entwicklung in Kotlin ist nur die halbe Miete. Früher oder später stellt sich die Frage: Wie bringt man die Anwendung von der lokalen Umgebung auf einen echten Server? In diesem Artikel werden wir das Deployment einer Kotlin-Anwendung (am Beispiel von Spring Boot) auf einer VPS im Detail durchgehen. Sie erfahren, wie Sie den Server vorbereiten, eine JAR-Datei erstellen, den automatischen Start konfigurieren und eine sichere Verbindung über HTTPS gewährleisten. Die Anleitung eignet sich sowohl für Anfänger als auch für Entwickler, die ihr Wissen systematisieren möchten.



1. Vorbereitung der VPS und Installation der erforderlichen Software



Bevor Sie Code hochladen, müssen Sie den Server vorbereiten. Wir empfehlen die Verwendung von Ubuntu 22.04 LTS oder neuer. Verbinden Sie sich per SSH mit dem Server:



ssh root@ihre-server-ip


Aktualisieren Sie die Paketdatenbank und installieren Sie Java (Kotlin wird in JVM-Bytecode kompiliert, daher benötigen wir JDK 17 oder 21):



sudo apt update && sudo apt upgrade -ysudo apt install openjdk-17-jdk -yjava -version


Stellen Sie sicher, dass die Java-Version Ihrem Build entspricht. Installieren Sie außerdem Git (falls Sie ein Repository verwenden) und Dienstprogramme für die Arbeit mit Archiven:



sudo apt install git unzip curl -y


Für die Arbeit mit einem Kotlin-Projekt auf dem Server muss der Kotlin-Compiler selbst nicht installiert werden – den Build führen wir lokal oder über CI/CD durch. Wenn Sie jedoch auf dem Server kompilieren möchten, fügen Sie SDKMAN! und Kotlin hinzu:



curl -s "https://get.sdkman.io" | bashsource "$HOME/.sdkman/bin/sdkman-init.sh"sdk install kotlin


Wichtig: Konfigurieren Sie in diesem Schritt auch die Firewall (UFW) für die grundlegende Sicherheit:



sudo ufw allow OpenSSHsudo ufw allow 8080/tcp  # Anwendungsportsudo ufw enable


2. Erstellen der Kotlin-Anwendung und Übertragen auf den Server



Betrachten wir ein typisches Spring Boot-Projekt mit Kotlin. Führen Sie den Build der JAR-Datei lokal durch (oder auf dem Server, wenn Sie das Repository geklont haben). Führen Sie im Projektstammverzeichnis Folgendes aus:



./gradlew clean bootJar


Oder, wenn Sie Maven verwenden:



mvn clean package


Nach dem Build erscheint im Ordner build/libs/ (Gradle) oder target/ (Maven) eine Datei namens app-0.0.1-SNAPSHOT.jar. Kopieren Sie diese mit SCP auf den Server:



scp build/libs/app-0.0.1-SNAPSHOT.jar root@ihre-ip:/opt/myapp/app.jar


Erstellen Sie auf dem Server ein Verzeichnis für die Anwendung und verschieben Sie die JAR-Datei:



sudo mkdir -p /opt/myappsudo mv app.jar /opt/myapp/


Überprüfen Sie, ob die JAR-Datei manuell gestartet werden kann:



cd /opt/myappjava -jar app.jar --server.port=8080


Wenn die Anwendung startet und auf Port 8080 antwortet – ist alles in Ordnung. Stoppen Sie sie (Strg+C) und fahren Sie mit der Konfiguration des dauerhaften Starts fort.



3. Konfiguration von systemd für automatischen Start und Überwachung



Damit die Anwendung beim Neustart des Servers automatisch startet und sich nach Abstürzen erholt, erstellen wir einen systemd-Dienst. Erstellen Sie die Datei:



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


Fügen Sie die folgende Vorlage ein (passen Sie die Parameter an Ihre Anwendung an):



[Unit]Description=Kotlin Spring Boot ApplicationAfter=network.target

[Service]Type=simpleUser=rootWorkingDirectory=/opt/myappExecStart=/usr/bin/java -jar /opt/myapp/app.jar --server.port=8080Restart=on-failureRestartSec=10StandardOutput=journalStandardError=journal

[Install]WantedBy=multi-user.target


Laden Sie die systemd-Konfiguration neu und starten Sie den Dienst:



sudo systemctl daemon-reloadsudo systemctl start kotlin-appsudo systemctl status kotlin-app


Wenn der Status active (running) ist – funktioniert alles. Fügen Sie den Dienst zum automatischen Start hinzu:



sudo systemctl enable kotlin-app

Blogs

Buchempfehlungen