ly.system.api/main.go
2025-02-08 09:31:50 +08:00

50 lines
1.0 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package main
import (
"fmt"
"log"
"ly.system.api/config"
"ly.system.api/container"
"ly.system.api/routes"
"github.com/gin-gonic/gin"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
func main() {
// 加载配置
if _, err := config.LoadConfig(); err != nil {
log.Fatalf("failed to load config: %v", err)
}
// 初始化PostgreSQL数据库
db, err := gorm.Open(postgres.Open(config.LoadDBConfig()), &gorm.Config{})
if err != nil {
log.Fatalf("failed to connect database: %v", err)
}
// 初始化容器
ctn := container.NewContainer(db)
// 自动迁移数据库
if err := ctn.Migrate(); err != nil {
log.Fatalf("failed to migrate database: %v", err)
}
// 创建Gin路由
router := gin.Default()
// 信任所有代理用于正确处理X-Forwarded-For等头信息
router.SetTrustedProxies([]string{"0.0.0.0/0", "::/0"})
// 设置路由
routes.SetupRoutes(router, ctn)
// 启动服务
port := config.AppConfig.Server.Port
if err := router.Run(fmt.Sprintf(":%d", port)); err != nil {
log.Fatalf("服务启动失败: %v", err)
}
}