41 lines
842 B
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)
|
|
}
|