From 5e8f79b8dd7ba96ed36426d627809d7befabdf1d Mon Sep 17 00:00:00 2001 From: Wikid82 Date: Wed, 19 Nov 2025 21:34:52 -0500 Subject: [PATCH] feat: implement main application logic for backend server --- backend/cmd/api/main.go | 49 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 backend/cmd/api/main.go diff --git a/backend/cmd/api/main.go b/backend/cmd/api/main.go new file mode 100644 index 00000000..9417d9a2 --- /dev/null +++ b/backend/cmd/api/main.go @@ -0,0 +1,49 @@ +package main + +import ( + "fmt" + "log" + + "github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/api/handlers" + "github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/api/routes" + "github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/config" + "github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/database" + "github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/server" + "github.com/Wikid82/CaddyProxyManagerPlus/backend/internal/version" +) + +func main() { + log.Printf("starting %s backend on version %s", version.Name, version.Full()) + + cfg, err := config.Load() + if err != nil { + log.Fatalf("load config: %v", err) + } + + db, err := database.Connect(cfg.DatabasePath) + if err != nil { + log.Fatalf("connect database: %v", err) + } + + router := server.NewRouter(cfg.FrontendDir) + + // Pass config to routes for auth service and certificate service + if err := routes.Register(router, db, cfg); err != nil { + log.Fatalf("register routes: %v", err) + } + + // Register import handler with config dependencies + routes.RegisterImportHandler(router, db, cfg.CaddyBinary, cfg.ImportDir) + + // Check for mounted Caddyfile on startup + if err := handlers.CheckMountedImport(db, cfg.ImportCaddyfile, cfg.CaddyBinary, cfg.ImportDir); err != nil { + log.Printf("WARNING: failed to process mounted Caddyfile: %v", err) + } + + addr := fmt.Sprintf(":%s", cfg.HTTPPort) + log.Printf("starting %s backend on %s", version.Name, addr) + + if err := router.Run(addr); err != nil { + log.Fatalf("server error: %v", err) + } +}