首次提交:初始化项目代码

This commit is contained in:
sunct
2026-07-31 15:24:14 +08:00
commit 8d3c97bd01
73 changed files with 11720 additions and 0 deletions
+49
View File
@@ -0,0 +1,49 @@
package main
import (
"cloudnest/internal/bootstrap"
"cloudnest/internal/config"
"cloudnest/internal/di"
"cloudnest/internal/pkg/logger"
)
func main() {
// Step 1: Initialize logger FIRST to prevent nil pointer panics
// 第一步:先初始化日志记录器以防止空指针 panic
// Using a default level until we can read config
// 使用默认级别直到读取配置
logger.Init("info")
// Step 2: Load configuration
// 第二步:加载配置
cfg := config.Load()
// Step 3: Re-initialize logger with the configured log level
// 第三步:使用配置的日志级别重新初始化日志记录器
logger.Init(cfg.App.LogLevel)
// Step 4: Initialize services
// 第四步:初始化服务
c := di.New()
if err := c.InitializeServices(); err != nil {
logger.Fatal("failed to initialize services", "error", err)
}
// Step 5: Build the HTTP engine (file service only registers file routes)
// 第五步:构建 HTTP 引擎(文件服务只注册文件路由)
engine, err := c.BuildFileEngine()
if err != nil {
logger.Fatal("failed to build engine", "error", err)
}
// Step 6: Create server with lifecycle management
// 第六步:创建带生命周期管理的服务器
srv := bootstrap.NewServer(cfg, engine)
if err := srv.Run(); err != nil {
if err == bootstrap.ErrReloadRequested {
logger.Info("exiting for reload, supervisor should restart")
} else {
logger.Error("server exited with error", "error", err)
}
}
}