plugins { alias(libs.plugins.kotlin.jvm) alias(ktorLibs.plugins.ktor) id("org.jlleitschuh.gradle.ktlint") version "12.1.0" kotlin("plugin.serialization") version "2.0.0" } group = "com.oliver.kidio.backend" version = "1.0.0-SNAPSHOT" application { mainClass = "io.ktor.server.netty.EngineMain" } ktor { openApi { enabled = true // Aktiviert die OpenAPI-Code-Generierung codeInferenceEnabled = true } } kotlin { jvmToolchain(21) } dependencies { implementation(ktorLibs.server.config.yaml) implementation(ktorLibs.server.core) implementation(ktorLibs.server.netty) implementation("io.ktor:ktor-server-openapi") // JWT Authentication implementation("io.ktor:ktor-server-auth") implementation("io.ktor:ktor-server-auth-jwt") implementation(libs.logback.classic) // Bcrypt implementation("org.mindrot:jbcrypt:0.4") // JSON-Unterstützung und Serialization implementation("io.ktor:ktor-server-content-negotiation-jvm") implementation("io.ktor:ktor-serialization-kotlinx-json-jvm") // postgres implementation("org.postgresql:postgresql:42.7.3") implementation("org.jetbrains.exposed:exposed-core:0.50.0") implementation("org.jetbrains.exposed:exposed-dao:0.50.0") implementation("org.jetbrains.exposed:exposed-jdbc:0.50.0") testImplementation(kotlin("test")) testImplementation(ktorLibs.server.testHost) // redis implementation("redis.clients:jedis:5.1.2") } tasks.register("runIngestion") { group = "application" description = "Runs the standalone H5P/ZUM task ingestion CLI tool" mainClass.set("com.oliver.kidio.backend.ingestion.H5PIngestionCli") classpath = sourceSets["main"].runtimeClasspath standardInput = System.`in` }