If anyone self-hosting Ghost with Docker + Cloudflare (or Nginx reverse proxy) has gotten ActivityPub working using the hosted instance at ap.ghost.org, I’d really appreciate help troubleshooting my redirects!
I’m running ghost:6-alpine on Fly, behind Cloudflare. I am redirecting traffic successfully to ap.ghost.org, but still getting 403 forbidden errors for some routes, and I have the dreaded webhook secret error in my logs.
I have read all the forum posts I can find (thank you @Cathy_Sarisky and @jannis for sharing your wisdom so generously!), and I’m still stuck.
I think it’s a SITE_MISSING or ROLE_MISSING error perhaps? I wonder whether I had a malformed redirect, and there’s now a bad record in the ap.ghost.org DB for my site…
I also have an Nginx reverse proxy (not currently what my site is accessible through; it’s just a backup for Cloudflare, as a firewall for bot traffic). I tried doing the redirect through that. As far as I could tell the redirect was successful (the activitypub routes no longer hit the origin server), however no luck there either. I suspect this may be a CORS issue, since the proxy isn’t what the domain is pointing to.
Other things I’ve tried, that I’ve seen suggested various places:
- hard reloading the page
- using a different browser
- restarting ghost
- redirecting
/ghost/activitypub/*rather than/.ghost/activitypub/* - toggling the Network on and off in the admin panel
- putting Cloudflare in development mode
- purging Cloudflare cache
Any pointers on how to debug this would be greatly appreciated!

