42 lines
1.3 KiB
Kotlin
42 lines
1.3 KiB
Kotlin
package eu.maiora
|
|
|
|
import eu.maiora.plugins.configureDatabases
|
|
import eu.maiora.plugins.*
|
|
import io.ktor.http.*
|
|
import io.ktor.server.application.*
|
|
import io.ktor.server.config.*
|
|
import io.ktor.server.engine.*
|
|
import io.ktor.server.netty.*
|
|
import io.ktor.server.plugins.callloging.*
|
|
import io.ktor.server.plugins.cors.routing.*
|
|
|
|
fun main() {
|
|
embeddedServer(Netty, port = 8098, host = "0.0.0.0", module = Application::module)
|
|
.start(wait = true)
|
|
}
|
|
|
|
fun Application.module() {
|
|
val config = ApplicationConfig("application.conf")
|
|
val dbUrl = config.property("ktor.database.url").getString()
|
|
val username = config.property("ktor.database.username").getString()
|
|
val password = config.property("ktor.database.password").getString()
|
|
val secret = config.property("ktor.jwt.secret").getString()
|
|
configureDatabases(dbUrl, username, password)
|
|
configureSecurity(secret)
|
|
configureRouting(dbUrl, username, password)
|
|
configureSerialization()
|
|
|
|
install(CallLogging)
|
|
install(CORS){
|
|
anyHost()
|
|
allowSameOrigin = true
|
|
allowNonSimpleContentTypes = true
|
|
allowHeader(HttpHeaders.AccessControlAllowOrigin)
|
|
allowHeader(HttpHeaders.ContentType)
|
|
allowMethod(HttpMethod.Options)
|
|
allowMethod(HttpMethod.Put)
|
|
allowMethod(HttpMethod.Patch)
|
|
allowMethod(HttpMethod.Delete)
|
|
}
|
|
}
|