package main import ( "encoding/json" "log" "net/http" "os" "github.com/prometheus/client_golang/prometheus/promhttp" ) var ( SigningToken = os.Getenv("SIGNING_TOKEN") fediAlts = map[string]string{} ) func main() { err := json.Unmarshal([]byte(os.Getenv("FEDI_ALTS")), &fediAlts) if err != nil { log.Println("fedi alts map failed to parse", err) } listenAddr := os.Getenv("LISTEN_ADDR") if listenAddr == "" { listenAddr = "0.0.0.0:8555" } mux := http.NewServeMux() // our routes mux.HandleFunc("/hook/{token}", postGetHookToken) mux.HandleFunc("/healthcheck", getHealthcheck) go populateSwitches() // prometheus mux.Handle("/metrics", promhttp.Handler()) log.Println("[main] http server listening on", listenAddr) err = http.ListenAndServe(listenAddr, mux) if err != nil { log.Fatalln("[main] http server errored", err) } } func getHealthcheck(rw http.ResponseWriter, req *http.Request) { _, err := pkApi.GetMember("iodbz") if err != nil { log.Println("[HEALTHCHECK FAIL] failed to reach pluralkit", err) errStatusInternalServerError(rw) return } }