Ktor Server: Projekt-Setup & Konfiguration #40

Closed
opened 2026-05-14 17:27:27 +00:00 by jreinemann-euris · 1 comment
jreinemann-euris commented 2026-05-14 17:27:27 +00:00 (Migrated from github.com)

Feature: Ktor-Server-Modul aufsetzen

Part of: #11
Depends on: #39

Ziel

Ein neues Gradle-Modul :server mit Ktor-Framework, das als eigenstaendiger HTTP-Server gestartet werden kann.

Scope

  • Neues Gradle-Modul :server anlegen (Kotlin/JVM)
  • Ktor-Dependencies: ktor-server-core, ktor-server-netty (oder CIO), ktor-server-content-negotiation, ktor-serialization-kotlinx-json
  • Application.kt mit eingebettetem Server (Netty/CIO)
  • HOCON-Konfiguration (application.conf): Host, Port, API-Key
  • Fat-JAR-Build via Shadow-Plugin oder Ktor-Plugin
  • :server haengt von :shared ab
  • settings.gradle.kts erweitern: include(:server)
  • libs.versions.toml um Ktor-Dependencies erweitern

Technische Hinweise

  • Ktor 3.x (aktuelle stabile Version)
  • Eingebetteter Server (kein externer Application-Server)
  • Logging via SLF4J/Logback
  • Server soll mit java -jar server.jar startbar sein

Akzeptanzkriterien

  • Modul :server existiert und baut erfolgreich
  • Server startet und antwortet auf GET /health mit 200 OK
  • Fat JAR kann erstellt werden (./gradlew :server:buildFatJar)
  • Konfiguration (Port, Host) ist ueber application.conf steuerbar
  • Tests: Server-Start-Test (embedded test server)
## Feature: Ktor-Server-Modul aufsetzen Part of: #11 Depends on: #39 ### Ziel Ein neues Gradle-Modul `:server` mit Ktor-Framework, das als eigenstaendiger HTTP-Server gestartet werden kann. ### Scope - Neues Gradle-Modul `:server` anlegen (Kotlin/JVM) - Ktor-Dependencies: ktor-server-core, ktor-server-netty (oder CIO), ktor-server-content-negotiation, ktor-serialization-kotlinx-json - `Application.kt` mit eingebettetem Server (Netty/CIO) - HOCON-Konfiguration (`application.conf`): Host, Port, API-Key - Fat-JAR-Build via Shadow-Plugin oder Ktor-Plugin - `:server` haengt von `:shared` ab - `settings.gradle.kts` erweitern: `include(:server)` - `libs.versions.toml` um Ktor-Dependencies erweitern ### Technische Hinweise - Ktor 3.x (aktuelle stabile Version) - Eingebetteter Server (kein externer Application-Server) - Logging via SLF4J/Logback - Server soll mit `java -jar server.jar` startbar sein ### Akzeptanzkriterien - [ ] Modul `:server` existiert und baut erfolgreich - [ ] Server startet und antwortet auf GET /health mit 200 OK - [ ] Fat JAR kann erstellt werden (`./gradlew :server:buildFatJar`) - [ ] Konfiguration (Port, Host) ist ueber `application.conf` steuerbar - [ ] Tests: Server-Start-Test (embedded test server)
jreinemann-euris commented 2026-05-14 18:06:52 +00:00 (Migrated from github.com)

Abgeschlossen (2026-05-14)

Zyklen: 1
Tests: 2 Tests, 0 Fehler

Implementierte Artefakte

  • Gradle-Modul :server (Ktor 3.1.2, Netty, Kotlin/JVM)
  • Application.kt mit eingebettetem Server (EngineMain)
  • GET /health Endpoint (200 OK)
  • Content-Negotiation (kotlinx.serialization)
  • HOCON-Konfiguration (application.conf: Host, Port)
  • Logback-Logging (logback.xml)
  • Fat-JAR Build (./gradlew :server:buildFatJar → server.jar, 14.5 MB)
  • libs.versions.toml um Ktor-Dependencies erweitert
  • settings.gradle.kts: include(:server)
  • :server hängt von :shared ab

Abweichungen

keine

## Abgeschlossen (2026-05-14) **Zyklen:** 1 **Tests:** ✅ 2 Tests, 0 Fehler ### Implementierte Artefakte - ✅ Gradle-Modul :server (Ktor 3.1.2, Netty, Kotlin/JVM) - ✅ Application.kt mit eingebettetem Server (EngineMain) - ✅ GET /health Endpoint (200 OK) - ✅ Content-Negotiation (kotlinx.serialization) - ✅ HOCON-Konfiguration (application.conf: Host, Port) - ✅ Logback-Logging (logback.xml) - ✅ Fat-JAR Build (./gradlew :server:buildFatJar → server.jar, 14.5 MB) - ✅ libs.versions.toml um Ktor-Dependencies erweitert - ✅ settings.gradle.kts: include(:server) - ✅ :server hängt von :shared ab ### Abweichungen keine
Sign in to join this conversation.
No description provided.