Files
AILab/ktor/src/main/kotlin/ink/snowflake/server/Application.kt
T
2025-06-18 10:21:32 +08:00

69 lines
1.7 KiB
Kotlin

package ink.snowflake.server
import com.google.gson.Gson
import ink.snowflake.server.plugins.*
import ink.snowflake.server.route.User
import ink.snowflake.server.route.chat
import ink.snowflake.server.plugins.configureSockets
import ink.snowflake.server.route.ImageAnalytics
import ink.snowflake.server.route.RemoteDebug
import ink.snowflake.server.route.VideoAnalytics
import ink.snowflake.server.route.VideoAnalyticsJetson
import ink.snowflake.server.utils.AppConfig
import io.ktor.server.application.*
import io.ktor.server.tomcat.jakarta.*
//const val VIDEO_INPUT_PATH = "/tmp/"
const val VIDEO_INPUT_PATH = "C:/tmp/"
/**
* 服务器地址
* ADB 秦朗FRP地址
*/
const val SERVER_PATH_FRP = "171.212.101.201"
/**
* 服务器地址
* OSS 对象存储服务器地址
*/
const val SERVER_PATH_OSS = "171.212.101.199"
val gson = Gson()
fun main(args: Array<String>): Unit = EngineMain.main(args)
fun Application.module() {
// 使用 appConfig 进行配置
val appConfig = AppConfig(environment.config)
// 序列化
configureSerialization()
// Thymeleaf
configureTemplating()
// 设置-身份验证
configureSecurity(appConfig)
// 路径
configureStaticPath()
// 跨域
configureCORS()
// 设置数据库
configureDatabases(appConfig)
// 状态拦截
configureStatusPages()
// 设置-WebSocket
configureSockets()
// 业务-用户信息相关操作
User(appConfig)
// 业务-聊天
chat()
// 业务-远程控制
RemoteDebug()
// 业务-视频分析
VideoAnalytics()
// 业务-视频分析-Jetson本地
VideoAnalyticsJetson()
// 业务-图片分析
ImageAnalytics()
}