package main import ( "fmt" "log" "os" "software-download-center/config" "software-download-center/database" "software-download-center/utils" "github.com/gin-gonic/gin" ) func main() { // 初始化日志 logger := utils.NewLogger() // 检测操作系统 osInfo := utils.DetectOS() logger.System(fmt.Sprintf("🖥️ 操作系统: %s (%s)", osInfo.OS, osInfo.Arch)) // 尝试初始化数据库(允许失败,等待管理员配置) if err := database.InitDB(); err != nil { logger.Warn("⚠️ 数据库初始化失败: " + err.Error()) logger.System("ℹ️ 系统将在管理员配置数据库后自动连接") } else { logger.System("✅ 数据库初始化成功") } // 初始化配置缓存 if err := utils.InitConfigCache(); err != nil { logger.Warn("配置缓存初始化失败: " + err.Error()) } else { logger.System("✅ 配置缓存初始化成功") } // 设置 Gin 模式 if os.Getenv("GIN_MODE") == "" { gin.SetMode(gin.ReleaseMode) } // 创建 Gin 引擎 r := gin.Default() // 注册所有路由 config.RegisterRoutes(r, logger) // 启动服务器 port := os.Getenv("PORT") if port == "" { port = "3355" } logger.System("=============================================") logger.System("✅ 服务器启动成功") logger.System("📡 访问地址: http://localhost:" + port) env := os.Getenv("GIN_MODE") if env == "" { env = "production" } logger.System("🌍 当前环境: " + env) logger.System("🔄 兼容旧版访问:支持 /tool-status.json /update-info.json /media-types.json") logger.System("=============================================") if err := r.Run(":" + port); err != nil { log.Fatal("服务器启动失败:", err) } }