package server import ( "log/slog" "net/http" "nixcn-cms/middleware" "time" "github.com/gin-gonic/gin" "github.com/spf13/viper" "go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin" ) func Start() { if !viper.GetBool("server.debug_mode") { gin.SetMode(gin.ReleaseMode) gin.DisableConsoleColor() } r := gin.New() r.Use(gin.Recovery(), middleware.GinLogger(), otelgin.Middleware("nixcn-cms-backend")) Router(r) // Start http server server := &http.Server{ Addr: viper.GetString("server.address"), Handler: r, ReadTimeout: 10 * time.Second, WriteTimeout: 10 * time.Second, MaxHeaderBytes: 1 << 20, } slog.Info("[Server] Starting server on " + viper.GetString("server.address")) if err := server.ListenAndServe(); err != nil { slog.Error("[Server] Error starting server!", "err", err) } }