65 lines
1.4 KiB
Go
65 lines
1.4 KiB
Go
|
package service
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"net/http"
|
||
|
|
||
|
"git.tijl.dev/tijl/tijl.dev/internal/assets"
|
||
|
"git.tijl.dev/tijl/tijl.dev/internal/config"
|
||
|
"git.tijl.dev/tijl/tijl.dev/internal/db"
|
||
|
"git.tijl.dev/tijl/tijl.dev/internal/handlers"
|
||
|
"git.tijl.dev/tijl/tijl.dev/internal/i18n"
|
||
|
"git.tijl.dev/tijl/tijl.dev/internal/oidc"
|
||
|
webinternal "git.tijl.dev/tijl/tijl.dev/internal/web"
|
||
|
"git.tijl.dev/tijl/tijl.dev/modules/logger"
|
||
|
"git.tijl.dev/tijl/tijl.dev/modules/web"
|
||
|
"git.tijl.dev/tijl/tijl.dev/views"
|
||
|
"github.com/gofiber/contrib/fiberzerolog"
|
||
|
"github.com/gofiber/fiber/v2"
|
||
|
"github.com/gofiber/template/html/v2"
|
||
|
)
|
||
|
|
||
|
func Listen() {
|
||
|
// Load initial context
|
||
|
ctx := context.Background()
|
||
|
|
||
|
// setup logger
|
||
|
log.Load()
|
||
|
// Load config
|
||
|
config.Load()
|
||
|
// Load database
|
||
|
db.Load()
|
||
|
// Setup oidc
|
||
|
oidc.Load(ctx)
|
||
|
// Load assets
|
||
|
assets.Load()
|
||
|
// Load translations
|
||
|
i18n.Load()
|
||
|
// setup handler
|
||
|
handlers.Setup()
|
||
|
// setup web
|
||
|
webinternal.Load()
|
||
|
|
||
|
// Init templating engine
|
||
|
engine := html.NewFileSystem(http.FS(views.Embed), ".html")
|
||
|
engine.AddFunc("icon", assets.Svg)
|
||
|
|
||
|
// Init fiber
|
||
|
app := fiber.New(fiber.Config{
|
||
|
Views: engine,
|
||
|
DisableStartupMessage: true,
|
||
|
})
|
||
|
app.Use(fiberzerolog.New(fiberzerolog.Config{
|
||
|
Logger: &log.Logger,
|
||
|
}))
|
||
|
|
||
|
// Setup routes
|
||
|
web.Setup(app)
|
||
|
|
||
|
// Listen web server
|
||
|
if err := app.Listen(":3000"); err != nil {
|
||
|
log.Fatal().Err(err).Msg("Fiber app error")
|
||
|
}
|
||
|
|
||
|
}
|