github.com/jxgolibs/go-oauth2-server@v1.0.1/cmd/run_server.go (about) 1 package cmd 2 3 import ( 4 "net/http" 5 "time" 6 7 "github.com/RichardKnop/go-oauth2-server/services" 8 "github.com/gorilla/mux" 9 "github.com/phyber/negroni-gzip/gzip" 10 "github.com/urfave/negroni" 11 "gopkg.in/tylerb/graceful.v1" 12 ) 13 14 // RunServer runs the app 15 func RunServer(configBackend string) error { 16 cnf, db, err := initConfigDB(true, true, configBackend) 17 if err != nil { 18 return err 19 } 20 defer db.Close() 21 22 // start the services 23 if err := services.Init(cnf, db); err != nil { 24 return err 25 } 26 defer services.Close() 27 28 // Start a classic negroni app 29 app := negroni.New() 30 app.Use(negroni.NewRecovery()) 31 app.Use(negroni.NewLogger()) 32 app.Use(gzip.Gzip(gzip.DefaultCompression)) 33 app.Use(negroni.NewStatic(http.Dir("public"))) 34 35 // Create a router instance 36 router := mux.NewRouter() 37 38 // Add routes 39 services.HealthService.RegisterRoutes(router, "/v1") 40 services.OauthService.RegisterRoutes(router, "/v1/oauth") 41 services.WebService.RegisterRoutes(router, "/web") 42 43 // Set the router 44 app.UseHandler(router) 45 46 // Run the server on port 8080, gracefully stop on SIGTERM signal 47 graceful.Run(":8080", 5*time.Second, app) 48 49 return nil 50 }