package main import ( "log" "net/http" "github.com/go-chi/chi/v5" ) func main() { // this will be configurable in the future obviously username := "dma" domain := "hello.yetaga.in" wf, err := NewWebfinger(username, domain) if err != nil { log.Fatalln(err) } pp, err := NewProfileProvider(username, domain) if err != nil { log.Fatalln(err) } st := &InMemoryStreams{} r := chi.NewRouter() r.Get("/.well-known/webfinger", WebFingerHandler(wf)) r.Get("/users/{user}", UserExistsMiddleware(username, ProfileHandler(pp))) r.Get("/users/{user}/inbox", UserExistsMiddleware(username, GetInboxHandler(st))) r.Post("/users/{user}/inbox", UserExistsMiddleware(username, PostInboxHandler(st))) r.Get("/users/{user}/outbox", UserExistsMiddleware(username, GetOutboxHandler(st))) r.Post("/users/{user}/outbox", UserExistsMiddleware(username, PostOutboxHandler(st))) r.Post("/inbox", PostInboxHandler(st)) // "shared" inbox log.Println("listening on http://0.0.0.0:8008") err = http.ListenAndServe(":8008", r) if err != nil { log.Fatalln(err) } }