plapkit/main.go
2024-06-26 21:18:24 -04:00

53 lines
1.1 KiB
Go

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