router.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. package activitypub
  2. import (
  3. "net/http"
  4. "github.com/owncast/owncast/activitypub/controllers"
  5. "github.com/owncast/owncast/webserver/middleware"
  6. )
  7. // StartRouter will start the federation specific http router.
  8. func StartRouter(router *http.ServeMux) {
  9. // WebFinger
  10. router.HandleFunc("/.well-known/webfinger", controllers.WebfingerHandler)
  11. // Host Metadata
  12. router.HandleFunc("/.well-known/host-meta", controllers.HostMetaController)
  13. // Nodeinfo v1
  14. router.HandleFunc("/.well-known/nodeinfo", controllers.NodeInfoController)
  15. // x-nodeinfo v2
  16. router.HandleFunc("/.well-known/x-nodeinfo2", controllers.XNodeInfo2Controller)
  17. // Nodeinfo v2
  18. router.HandleFunc("/nodeinfo/2.0", controllers.NodeInfoV2Controller)
  19. // Instance details
  20. router.HandleFunc("/api/v1/instance", controllers.InstanceV1Controller)
  21. // Single ActivityPub Actor
  22. router.HandleFunc("/federation/user/", middleware.RequireActivityPubOrRedirect(controllers.ActorHandler))
  23. // Single AP object
  24. router.HandleFunc("/federation/", middleware.RequireActivityPubOrRedirect(controllers.ObjectHandler))
  25. }