You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.2 KiB

  1. package main
  2. import (
  3. log "github.com/Sirupsen/logrus"
  4. "github.com/matrix-org/go-neb/auth"
  5. "github.com/matrix-org/go-neb/clients"
  6. "github.com/matrix-org/go-neb/database"
  7. "github.com/matrix-org/go-neb/server"
  8. _ "github.com/matrix-org/go-neb/services/echo"
  9. _ "github.com/matrix-org/go-neb/services/github"
  10. _ "github.com/mattn/go-sqlite3"
  11. "net/http"
  12. _ "net/http/pprof"
  13. "os"
  14. )
  15. func main() {
  16. bindAddress := os.Getenv("BIND_ADDRESS")
  17. databaseType := os.Getenv("DATABASE_TYPE")
  18. databaseURL := os.Getenv("DATABASE_URL")
  19. db, err := database.Open(databaseType, databaseURL)
  20. if err != nil {
  21. log.Panic(err)
  22. }
  23. clients := clients.New(db)
  24. if err := clients.Start(); err != nil {
  25. log.Panic(err)
  26. }
  27. auth.RegisterModules(db)
  28. http.Handle("/test", server.MakeJSONAPI(&heartbeatHandler{}))
  29. http.Handle("/admin/configureClient", server.MakeJSONAPI(&configureClientHandler{db: db, clients: clients}))
  30. http.Handle("/admin/configureService", server.MakeJSONAPI(&configureServiceHandler{db: db, clients: clients}))
  31. http.Handle("/admin/configureAuth", server.MakeJSONAPI(&configureAuthHandler{db: db}))
  32. wh := &webhookHandler{db: db}
  33. http.HandleFunc("/services/hooks/", wh.handle)
  34. http.ListenAndServe(bindAddress, nil)
  35. }