Files
jiang13-bbs/backend/cmd/jiang13/main.go
freefire b9ba8cb8c9 feat: 类型帖互动、积分经济与发帖体验
补齐问答采纳/重开、投票匿名与有票禁编、悬赏过期退回、抽奖回帖开奖,并接入积分账本与发帖附件可见性。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 03:17:07 +08:00

41 lines
1.0 KiB
Go

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)
// 悬赏过期退回 / 抽奖到期开奖
service.StartTypedPostSettler(service.NewPostService(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)
}
}