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" "github.com/freefire/jiang13-bbs/version" ) 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) // 悬赏过期退回 / 抽奖到期开奖 service.StartTypedPostSettler(service.NewPostService(model.DB).WithDevMode(cfg.DevMode)) r, err := router.Setup(cfg) if err != nil { log.Fatalf("路由初始化失败: %v", err) } addr := fmt.Sprintf(":%d", cfg.Port) log.Printf("[jiang13-bbs] 服务启动于 %s (version=%s commit=%s dev=%v workPath=%s dataDir=%s)", addr, version.Version, version.Commit, cfg.DevMode, cfg.WorkPath, cfg.DataDir) if err := r.Run(addr); err != nil { log.Fatalf("服务启动失败: %v", err) } }