**Network tab "Loading interrupted" – ap.ghost.org returning 403 on self-hosted Ghost (Synology/Docker)**

Network tab “Loading interrupted” – ap.ghost.org returning 403 on self-hosted Ghost (Synology/Docker)

Hi everyone,

I’m running two Ghost instances on a self-hosted Synology NAS (Docker) and have been trying to get the Network/ActivityPub tab working. Unfortunately, I keep seeing the “Loading interrupted” error.

After some debugging, I was able to identify the root cause: ap.ghost.org is returning HTTP/2 403 for all requests coming from my server.

My setup:

Test results from the server:

IPv4 test:

curl -4 -I https://ap.ghost.org/.well-known/nodeinfo
→ HTTP/2 403

IPv6 test:

curl -6 -I https://ap.ghost.org/.well-known/nodeinfo
→ HTTP/2 403

Both IPv4 (94.31.116.189) and IPv6 (2a00:6020:ad59:c00:9209:d0ff:fe38:caf7) return 403.

The core problem:
My external IP is dynamic (Deutsche Glasfaser residential connection), so a simple IP whitelisting would not be a permanent solution. My domains seniorenundtechnik.de and seniorenbeirat.de are fixed, however.

My questions:

  1. Is it possible to whitelist my sites by domain (seniorenundtechnik.de) rather than by IP?
  2. Is there a known issue with certain German ISP IP ranges being blocked by ap.ghost.org?
  3. Is there any other configuration on the Ghost/Docker side that could resolve this?

I have already checked the Nginx routing for /.ghost/activitypub/ and /.well-known/ — both are correctly forwarded.

Thank you very much for any help or pointers!

If you’re already running Ghost in Docker, you could look into self-hosting ActivityPub as well via the Ghost docker-compose setup (GitHub - TryGhost/ghost-docker · GitHub).