package main import ( "log" "net/http" "time" _ "git.freecumextremist.com/grumbulon/pomme/docs" "git.freecumextremist.com/grumbulon/pomme/frontend" "git.freecumextremist.com/grumbulon/pomme/internal" "git.freecumextremist.com/grumbulon/pomme/internal/api" "github.com/go-chi/chi/v5" "github.com/go-chi/chi/v5/middleware" httpSwagger "github.com/swaggo/http-swagger" ) // @title Pomme // @version 0.0.1 // @description Pomme is a service that parses zonefiles // @termsOfService http://freecumextremist.com/ // // @securityDefinitions.apikey Bearer // @in header // @name Authorization // @description Type "Bearer" followed by a space and JWT token. func main() { config, err := internal.ReadConfig() if err != nil { panic(err) } pomme := chi.NewRouter() pomme.Use(middleware.Logger) pomme.Use(middleware.GetHead) pomme.Use(middleware.Recoverer) pomme.Mount("/", frontend.SvelteKitHandler("/")) pomme.Mount("/api", api.API()) pomme.Mount("/swagger", httpSwagger.WrapHandler) log.Println("\t-------------------------------------") log.Println("\t\tRunning on port " + config.Port) log.Println("\t-------------------------------------") s := &http.Server{ ReadTimeout: 3 * time.Second, WriteTimeout: 15 * time.Second, Addr: ":" + config.Port, Handler: pomme, } log.Fatal(s.ListenAndServe()) }