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