feat: add main application entry point

- Add main.go with Fiber web server setup
- Include database initialization and admin user setup
- Add middleware configuration (logging, request ID, health check)
- Add Swagger documentation integration
- Configure server to listen on port 8000
- Include proper error handling and graceful shutdown
This commit is contained in:
Björn Benouarets
2025-09-25 23:24:42 +02:00
parent b4a0a6b611
commit 1e11664ec3

46
main.go Normal file
View File

@@ -0,0 +1,46 @@
package main
import (
"git.secnex.io/secnex/idp-api/db"
"git.secnex.io/secnex/idp-api/middlewares"
"git.secnex.io/secnex/idp-api/routes"
"git.secnex.io/secnex/idp-api/utils"
"github.com/gofiber/contrib/swagger"
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/log"
"github.com/gofiber/fiber/v2/middleware/healthcheck"
"github.com/gofiber/fiber/v2/middleware/logger"
"github.com/gofiber/fiber/v2/middleware/requestid"
)
func main() {
if err := db.InitializeDB(); err != nil {
log.Fatalf("Failed to initialize database: %v", err)
}
defer db.CloseDB()
utils.CheckAdminUser()
app := fiber.New()
swaggerCfg := swagger.Config{
BasePath: "/",
FilePath: "./docs/swagger.json",
Path: "/docs/swagger",
Title: "Swagger API Docs",
}
app.Use(
logger.New(),
requestid.New(),
healthcheck.New(),
swagger.New(swaggerCfg),
middlewares.DatabaseMiddleware(), // Add database middleware
)
routes.SetupRoutes(app)
if err := app.Listen(":8000"); err != nil {
log.Fatalf("Failed to start server: %v", err)
}
}