package main import ( "fmt" "log" "github.com/freefire/jiang13-bbs/config" "github.com/freefire/jiang13-bbs/model" "github.com/freefire/jiang13-bbs/router" "github.com/freefire/jiang13-bbs/service" ) func main() { cfg, err := config.Parse() if err != nil { log.Fatalf("配置解析失败: %v", err) } if err := model.InitDB(cfg.DBDSN); err != nil { log.Fatalf("数据库初始化失败: %v", err) } // 生产 HTTPS 启用 __Host- 认证 cookie 前缀(须在路由注册、读写 cookie 前配置) service.ConfigureCookieNames(!cfg.DevMode) // 过期/已吊销 refresh token 定期清理 service.StartRefreshTokenCleanup(model.DB) r, err := router.Setup(cfg) if err != nil { log.Fatalf("路由初始化失败: %v", err) } addr := fmt.Sprintf(":%d", cfg.Port) log.Printf("[jiang13-bbs] 服务启动于 %s (dev=%v)", addr, cfg.DevMode) if err := r.Run(addr); err != nil { log.Fatalf("服务启动失败: %v", err) } }