You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OneAuth/cmd/server/main.go

51 lines
1.2 KiB
Go

package main
import (
"log"
"github.com/veypi/vbase/internal/api"
"github.com/veypi/vbase/internal/cache"
"github.com/veypi/vbase/internal/config"
"github.com/veypi/vbase/internal/model"
"github.com/veypi/vigo"
)
func main() {
// 初始化数据库
if err := model.InitDB(); err != nil {
log.Fatalf("Failed to init database: %v", err)
}
// 自动迁移
if err := model.AutoMigrate(); err != nil {
log.Fatalf("Failed to migrate database: %v", err)
}
// 初始化系统数据
if err := model.InitSystemData(); err != nil {
log.Fatalf("Failed to init system data: %v", err)
}
// 初始化Redis
if err := cache.Init(); err != nil {
log.Printf("Warning: Failed to init redis: %v", err)
} else {
log.Println("Redis connected")
}
// 创建路由
router := api.NewRouter()
// 创建服务器
server, err := vigo.New(vigo.WithHost(config.C.Server.Host), vigo.WithPort(config.C.Server.Port))
if err != nil {
log.Fatalf("Failed to create server: %v", err)
}
server.Router().Extend("api", router)
log.Printf("Server starting on %s:%d", config.C.Server.Host, config.C.Server.Port)
if err := server.Run(); err != nil {
log.Fatalf("Server error: %v", err)
}
}