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

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



Sie haben eine tolle Anwendung in Kotlin (Ktor, Spring Boot oder einfach einen Konsolendienst) geschrieben, und jetzt muss sie auf einem echten Server ausgeführt werden. In diesem Artikel behandeln wir den gesamten Bereitstellungszyklus einer Kotlin-Anwendung auf einem VPS: vom Kauf des Servers und der SSH-Konfiguration bis zum Start über systemd und der Verbindung einer Domain mit HTTPS. Alle Beispiele sind funktionsfähig und auf Ubuntu 22.04 getestet.



1. VPS-Vorbereitung und Verbindung



Mieten Sie zunächst einen VPS (z. B. bei Timeweb, Selectel oder DigitalOcean). Mindestanforderungen: 1 vCPU, 1 GB RAM, 20 GB SSD. Betriebssystem: Ubuntu 22.04 LTS.



Nachdem Sie die IP-Adresse und das Root-Passwort erhalten haben, verbinden Sie sich per SSH:



ssh root@your_server_ip


Aktualisieren Sie sofort das System und erstellen Sie einen unprivilegierten Benutzer (Arbeiten als Root ist eine schlechte Praxis):



apt update && apt upgrade -yadduser kotlinuserusermod -aG sudo kotlinusersu - kotlinuser


Richten Sie SSH-Schlüssel für eine bequeme und sichere Anmeldung ein:



ssh-keygen -t ed25519 -C "your_email@example.com"ssh-copy-id kotlinuser@your_server_ip


Deaktivieren Sie nun die Passwortanmeldung in /etc/ssh/sshd_config (Zeile PasswordAuthentication no) und starten Sie SSH neu: sudo systemctl restart sshd.



2. Installation von Java (JRE/JDK) und Erstellung der Anwendung



Kotlin-Anwendungen laufen auf der JVM. Installieren Sie OpenJDK 17 oder 21 (empfohlen für moderne Projekte):



sudo apt install openjdk-17-jdk -yjava -version


Erstellen Sie nun auf Ihrem lokalen Computer (auf dem entwickelt wird) die Anwendung als JAR-Datei. Für Gradle (Ktor oder Spring Boot):



./gradlew clean build


Die fertige JAR-Datei befindet sich in build/libs/. Zum Beispiel myapp-1.0.0.jar. Laden Sie sie auf den Server hoch:



scp build/libs/myapp-1.0.0.jar kotlinuser@your_server_ip:~/app/


Erstellen Sie auf dem Server die Ordnerstruktur:



mkdir -p ~/app/logs ~/app/config


Legen Sie die Konfigurationsdateien (application.conf, application.yml) in ~/app/config/ ab. Überprüfen Sie, ob die Anwendung manuell startet:



cd ~/appjava -jar myapp-1.0.0.jar --spring.config.location=file:./config/


Wenn alles funktioniert, fahren Sie mit dem automatischen Start fort.



3. Konfiguration von systemd für den Autostart



Damit die Anwendung nach einem Neustart des Servers automatisch startet und bei Fehlern nicht abstürzt, erstellen wir einen systemd-Dienst.



Erstellen Sie die Datei /etc/systemd/system/kotlin-app.service:



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


Fügen Sie den folgenden Inhalt ein (ersetzen Sie die Pfade durch Ihre eigenen):



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

[Service]Type=simpleUser=kotlinuserWorkingDirectory=/home/kotlinuser/appExecStart=/usr/bin/java -jar /home/kotlinuser/app/myapp-1.0.0.jar --spring.config.location=file:/home/kotlinuser/app/config/Restart=on-failureRestartSec=10StandardOutput=append:/home/kotlinuser/app/logs/app.logStandardError=append:/home/kotlinuser/app/logs/error.log

[Install]WantedBy=multi-user.target


Erklärung der wichtigsten Parameter:

  • User — von wem ausgeführt werden soll (nicht root);
  • ExecStart — vollständiger Startbefehl mit Angabe der Konfiguration;
  • Restart=on-failure — automatischer Neustart bei Absturz;
  • StandardOutput/Error — Protokollierung in Dateien.


Aktivieren Sie den Dienst:



sudo systemctl daemon-reloadsudo systemctl enable kotlin-app.servicesudo systemctl start kotlin-app.service


Überprüfen Sie den Status:



sudo systemctl status kotlin-app.service

Blogs

Buchempfehlungen