package ink.snowflake.server import com.google.gson.Gson import ink.snowflake.server.controller.User import ink.snowflake.server.controller.chat import ink.snowflake.server.utils.plugins.configureSockets import ink.snowflake.server.controller.ImageAnalytics import ink.snowflake.server.controller.RemoteDebug import ink.snowflake.server.controller.Traceability import ink.snowflake.server.controller.VideoAnalytics import ink.snowflake.server.controller.VideoAnalyticsJetson import ink.snowflake.server.utils.AppConfig import ink.snowflake.server.utils.OSSUtils import ink.snowflake.server.utils.plugins.configureCORS import ink.snowflake.server.utils.plugins.configureDatabases import ink.snowflake.server.utils.plugins.configureSecurity import ink.snowflake.server.utils.plugins.configureSerialization import ink.snowflake.server.utils.plugins.configureStaticPath import ink.snowflake.server.utils.plugins.configureStatusPages import ink.snowflake.server.utils.plugins.configureTemplating 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 = "s3.ronsunny.cn" // 171.212.101.201 /** * 局域网IP 用于连接PostgreSQL和Radis */ const val LOCAL_IP = "10.10.12.101" val gson = Gson() fun main(args: Array): Unit = EngineMain.main(args) fun Application.module() { // 使用 appConfig 进行配置 val appConfig = AppConfig(environment.config) // 序列化 configureSerialization() // Thymeleaf configureTemplating() // 设置-身份验证 configureSecurity(appConfig) // 路径 configureStaticPath() // 跨域 configureCORS() // 设置数据库 configureDatabases(appConfig) // OSS / MinIO OSSUtils.init(appConfig) // 状态拦截 configureStatusPages() // 设置-WebSocket configureSockets() // 业务-用户信息相关操作 User(appConfig) // 业务-聊天 chat() // 业务-远程控制 RemoteDebug() // 业务-视频分析 VideoAnalytics() // 业务-视频分析-Jetson本地 VideoAnalyticsJetson() // 业务-图片分析 ImageAnalytics() Traceability() }