Files
acc-server-manager/local/utl/server/server.go
Fran Jurmanović 26c6bc5496 add better logs
2025-05-29 01:27:59 +02:00

54 lines
1006 B
Go

package server
import (
"acc-server-manager/local/api"
"acc-server-manager/local/utl/logging"
"fmt"
"os"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/cors"
"github.com/gofiber/swagger"
"go.uber.org/dig"
)
func Start(di *dig.Container) *fiber.App {
// Initialize logger
logger, err := logging.Initialize()
if err != nil {
fmt.Printf("Failed to initialize logger: %v\n", err)
os.Exit(1)
}
defer logger.Close()
// Set up panic recovery
defer logging.RecoverAndLog()
app := fiber.New(fiber.Config{
EnablePrintRoutes: true,
})
app.Use(cors.New())
app.Get("/swagger/*", swagger.HandlerDefault)
api.Init(di, app)
app.Get("/ping", func(c *fiber.Ctx) error {
return c.SendString("pong")
})
port := os.Getenv("PORT")
if port == "" {
port = "3000" // Default port
}
logging.Info("Starting server on port %s", port)
if err := app.Listen(":" + port); err != nil {
logging.Error("Failed to start server: %v", err)
os.Exit(1)
}
return app
}