feat: add runtime configuration for Caddy-based SPA containerization
Introduced `config.json` runtime configuration fetch mechanism to support the "Build Once, Deploy Everywhere" pattern. Replaced NGINX with Caddy for SPA deployment, enabling SPA routing, security headers, and static asset management. Updated Gradle and Kotlin/JS build configurations to align with the new runtime environment. Enhanced Dockerfile and health checks for optimized CI/CD workflows and improved SPA delivery.
This commit is contained in:
@@ -4,8 +4,6 @@ plugins {
|
||||
}
|
||||
|
||||
kotlin {
|
||||
// Toolchain is now handled centrally in the root build.gradle.kts
|
||||
|
||||
jvm {
|
||||
compilerOptions {
|
||||
freeCompilerArgs.add("-opt-in=kotlin.time.ExperimentalTime")
|
||||
@@ -13,6 +11,7 @@ kotlin {
|
||||
}
|
||||
|
||||
js(IR) {
|
||||
binaries.library()
|
||||
browser {
|
||||
testTask {
|
||||
enabled = false
|
||||
@@ -20,29 +19,21 @@ kotlin {
|
||||
}
|
||||
}
|
||||
|
||||
// Wasm support enabled?
|
||||
@OptIn(org.jetbrains.kotlin.gradle.ExperimentalWasmDsl::class)
|
||||
wasmJs {
|
||||
binaries.library()
|
||||
browser()
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
// Opt-in to experimental Kotlin UUID API across all source sets
|
||||
all {
|
||||
languageSettings.optIn("kotlin.uuid.ExperimentalUuidApi")
|
||||
// Opt-in für kotlin.time.ExperimentalTime projektweit, solange Teile noch experimentell sind
|
||||
languageSettings.optIn("kotlin.time.ExperimentalTime")
|
||||
}
|
||||
|
||||
commonMain.dependencies {
|
||||
// Core dependencies (that aren't included in platform-dependencies)
|
||||
// Note: core-domain should NOT depend on core-utils to avoid circular dependencies
|
||||
// core-utils depends on core-domain, not the other way around
|
||||
|
||||
// Serialization and date-time for commonMain
|
||||
api(libs.kotlinx.serialization.json)
|
||||
api(libs.kotlinx.datetime)
|
||||
|
||||
}
|
||||
|
||||
commonTest.dependencies {
|
||||
@@ -58,17 +49,12 @@ kotlin {
|
||||
}
|
||||
|
||||
jvmMain.dependencies {
|
||||
// Fachliches Domain-Modul: keine technischen Abhängigkeiten hier hinterlegen.
|
||||
// Falls in Zukunft JVM-spezifische, fachlich neutrale Ergänzungen nötig sind,
|
||||
// bitte bewusst und minimal hinzufügen.
|
||||
}
|
||||
|
||||
jvmTest.dependencies {
|
||||
// implementation(kotlin("test-junit5"))
|
||||
implementation(libs.junit.jupiter.api)
|
||||
implementation(libs.mockk)
|
||||
implementation(projects.platform.platformTesting)
|
||||
// implementation(libs.bundles.testing.jvm) // Temporarily disabled due to resolution issues
|
||||
implementation(libs.junit.jupiter.api)
|
||||
implementation(libs.junit.jupiter.engine)
|
||||
implementation(libs.junit.jupiter.params)
|
||||
|
||||
Reference in New Issue
Block a user