package main import ( "log" "os" "os/signal" "syscall" "github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2/middleware/cors" "github.com/gofiber/fiber/v2/middleware/logger" ) func main() { app := fiber.New(fiber.Config{ AppName: "Know Foolery Admin Service v1.0.0", ServerHeader: "Admin Service", }) // Middleware app.Use(logger.New(logger.Config{ Format: "[${time}] ${status} - ${method} ${path} ${latency}\n", })) app.Use(cors.New()) // Health endpoint app.Get("/health", func(c *fiber.Ctx) error { return c.JSON(fiber.Map{ "status": "healthy", "service": "admin-service", "version": "1.0.0", }) }) // API routes api := app.Group("/api/v1") api.Get("/admin", func(c *fiber.Ctx) error { return c.JSON(fiber.Map{ "message": "Admin service endpoint", "admin": true, }) }) // Graceful shutdown c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt, syscall.SIGTERM) go func() { <-c log.Println("Gracefully shutting down Admin Service...") _ = app.Shutdown() }() port := os.Getenv("PORT") if port == "" { port = "3006" } log.Printf("Admin Service starting on port %s", port) if err := app.Listen(":" + port); err != nil { log.Printf("Error starting server: %v", err) } }