push-pubsub/main.go

41 lines
842 B
Go

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)
}