40 lines
738 B
Go
40 lines
738 B
Go
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")
|
|
}
|