84 lines
2.4 KiB
Kotlin
84 lines
2.4 KiB
Kotlin
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.Public
|
|
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.http.CacheControl
|
|
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<String>): 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(appConfig)
|
|
// 业务-公开接口
|
|
Public()
|
|
}
|