Files

46 lines
967 B
Go

package main
import (
"fmt"
"log"
"speedtest/config"
"speedtest/internal/db"
"speedtest/internal/store"
"speedtest/internal/web"
)
func main() {
// 1. Load configuration
cfg, err := config.LoadConfig()
if err != nil {
log.Fatalf("加载配置失败: %v", err)
}
fmt.Println("配置加载成功")
// 2. Initialize database
database, err := db.InitDB(cfg.Database)
if err != nil {
log.Fatalf("数据库初始化失败: %v", err)
}
fmt.Println("数据库初始化成功")
// 3. Create Store layer
stores := store.NewStores(database)
// 4. Start Web server
webServer, err := web.NewWebServer(*cfg, stores)
if err != nil {
log.Fatalf("Web 服务初始化失败: %v", err)
}
fmt.Printf("Web 服务启动在 %s\n", cfg.Web.Addr)
go func() {
if err := webServer.Start(); err != nil {
log.Fatalf("Web 服务启动失败: %v", err)
}
}()
fmt.Println("SpeedTest 网速测试服务启动完成")
select {} // Block main goroutine
}