53 lines
1.0 KiB
Go
53 lines
1.0 KiB
Go
package server
|
|
|
|
import (
|
|
"acc-server-manager/local/api"
|
|
"acc-server-manager/local/utl/logging"
|
|
"os"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
"github.com/gofiber/fiber/v2/middleware/cors"
|
|
"github.com/gofiber/fiber/v2/middleware/helmet"
|
|
"github.com/gofiber/swagger"
|
|
"go.uber.org/dig"
|
|
)
|
|
|
|
func Start(di *dig.Container) *fiber.App {
|
|
app := fiber.New(fiber.Config{
|
|
EnablePrintRoutes: true,
|
|
})
|
|
|
|
app.Use(helmet.New())
|
|
|
|
allowedOrigin := os.Getenv("CORS_ALLOWED_ORIGIN")
|
|
if allowedOrigin == "" {
|
|
allowedOrigin = "http://localhost:5173"
|
|
}
|
|
|
|
app.Use(cors.New(cors.Config{
|
|
AllowOrigins: allowedOrigin,
|
|
AllowHeaders: "Origin, Content-Type, Accept",
|
|
}))
|
|
|
|
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
|
|
}
|