in ui/web.go [30:92]
func Register(r *route.Router, reloadCh chan<- chan error, logger log.Logger) {
r.Get("/metrics", promhttp.Handler().ServeHTTP)
r.Get("/", func(w http.ResponseWriter, req *http.Request) {
disableCaching(w)
req.URL.Path = "/static/"
fs := http.FileServer(asset.Assets)
fs.ServeHTTP(w, req)
})
r.Get("/script.js", func(w http.ResponseWriter, req *http.Request) {
disableCaching(w)
req.URL.Path = "/static/script.js"
fs := http.FileServer(asset.Assets)
fs.ServeHTTP(w, req)
})
r.Get("/favicon.ico", func(w http.ResponseWriter, req *http.Request) {
disableCaching(w)
req.URL.Path = "/static/favicon.ico"
fs := http.FileServer(asset.Assets)
fs.ServeHTTP(w, req)
})
r.Get("/lib/*path", func(w http.ResponseWriter, req *http.Request) {
disableCaching(w)
req.URL.Path = path.Join("/static/lib", route.Param(req.Context(), "path"))
fs := http.FileServer(asset.Assets)
fs.ServeHTTP(w, req)
})
r.Post("/-/reload", func(w http.ResponseWriter, req *http.Request) {
errc := make(chan error)
defer close(errc)
reloadCh <- errc
if err := <-errc; err != nil {
http.Error(w, fmt.Sprintf("failed to reload config: %s", err), http.StatusInternalServerError)
}
})
r.Get("/-/healthy", func(w http.ResponseWriter, _ *http.Request) {
w.WriteHeader(http.StatusOK)
fmt.Fprintf(w, "OK")
})
r.Head("/-/healthy", func(w http.ResponseWriter, _ *http.Request) {
w.WriteHeader(http.StatusOK)
})
r.Get("/-/ready", func(w http.ResponseWriter, _ *http.Request) {
w.WriteHeader(http.StatusOK)
fmt.Fprintf(w, "OK")
})
r.Head("/-/ready", func(w http.ResponseWriter, _ *http.Request) {
w.WriteHeader(http.StatusOK)
})
r.Get("/debug/*subpath", http.DefaultServeMux.ServeHTTP)
r.Post("/debug/*subpath", http.DefaultServeMux.ServeHTTP)
}