package main import ( "flag" "github.com/gin-contrib/static" "github.com/gin-gonic/gin" "github.com/chenjiandongx/ginprom" "github.com/prometheus/client_golang/prometheus/promhttp" "dev.sum7.eu/genofire/push-pubsub/api" "dev.sum7.eu/genofire/push-pubsub/db" ) var dbfile = flag.String("dbfile", "data.toml", "") var listen = flag.String("listen", ":8080", "") var webroot = flag.String("webroot", "./public", "") func main() { db := db.NewDatabase(*dbfile) gin.EnableJsonDecoderDisallowUnknownFields() gin.SetMode(gin.ReleaseMode) r := gin.New() // catch crashed r.Use(gin.Recovery()) // prometheus r.Use(ginprom.PromMiddleware(nil)) r.GET("/metrics", ginprom.PromHandler(promhttp.Handler())) g := r.Group("/api") { api.Use(g, db) } r.Use(static.Serve("/", static.LocalFile(*webroot, true))) r.Run(*listen) }