package main import ( "github.com/gofiber/contrib/websocket" "github.com/gofiber/fiber/v2" "log" "relay-server/database" "relay-server/router" "relay-server/utils" ) func main() { app := fiber.New(fiber.Config{ ErrorHandler: utils.ErrorHandler, }) app.Use(func(c *fiber.Ctx) error { if websocket.IsWebSocketUpgrade(c) { c.Locals("allowed", true) return c.Next() } return fiber.ErrUpgradeRequired }) db, err := database.Init() if err != nil { log.Fatal("Failed to initialize database") } defer func() { if err := db.Close(); err != nil { log.Fatalf("Failed to close database connection: %v", err) } log.Println("Database connection closed") }() router.SetupRoutes(app) app.Listen(":3000") }