It returns an HTTP/2 403 Forbidden from the Google Frontend. It seems the IP address of my OVH VPS (141.95.53.122) is blacklisted or blocked by Ghost’s central infrastructure firewall.
Could someone from the staff please look into this and whitelist my IP?
That’s a red herring. You’re sending a GET request to the server and ap.ghost.org is telling you that that’s now allowed.
Can you restart your Ghost instance and watch the logs? It should say something about webhooks in the beginning (Ghost will try to auto-heal ActivityPub webhooks) – that can be very informative sometimes.
Here are the logs right after restarting the instance on Ghost v6.44.1:
…> ghost log -f
Love open source? We’re hiring JavaScript Engineers to work on Ghost full-time.
sudo systemctl is-active ghost_hub-curanderie-com
[2026-06-08 16:23:07] INFO “GET /ghost/api/admin/identities/” 200 50ms
[2026-06-08 16:23:07] INFO “GET /ghost/api/admin/identities/” 200 52ms
[2026-06-08 16:23:07] INFO “GET /ghost/api/admin/identities/” 200 51ms
[2026-06-08 16:23:07] INFO “GET /ghost/api/admin/identities/” 200 55ms
[2026-06-08 16:23:07] INFO “GET /ghost/api/admin/identities/” 200 62ms
[2026-06-08 16:23:21] INFO “GET /content/images/size/w256h256/2025/11/social-logo-epicuro.png” 200 3ms
[2026-06-08 16:24:05] INFO “GET /ghost/api/content/” 404 3ms
[2026-06-08 16:24:06] INFO “GET /biohacking-tra-scienza-utopia-e-corpo-come-laboratorio/?fbclid=IwY2xjawSTy_RleHRuA2FlbQIxMQBicmlkETF4YlVPRkVnQ2VFZmdKNWlSc3J0YwZhcHBfaWQBMAABHqEbsYqTvCmbJgwB-WJ3Z56-yTi_pHto-nrIAb-kuummEFjtShE9NjUnt1Tt_aem_JpoFY5U8qWdKkxykGoRJyg” 404 10ms
[2026-06-08 16:24:06] INFO “GET /public/ghost.min.css?v=0b5720d112” 200 2ms
[2026-06-08 16:24:06] INFO “GET /favicon.ico” 302 3ms
[2026-06-08 16:24:06] INFO “GET /content/images/size/w256h256/2025/11/social-logo-epicuro.png” 200 3ms
[2026-06-08 16:26:42] INFO “GET /” 200 123ms
[2026-06-08 16:27:05] INFO “GET /” 200 137ms
[2026-06-08 16:27:05] INFO “GET /content/images/size/w256h256/2025/11/social-logo-epicuro.png” 200 3ms
[2026-06-08 16:27:33] INFO “HEAD /la-mappa-dellassurdo/” 404 13ms
[2026-06-08 16:27:33] INFO “GET /la-mappa-dellassurdo/” 404 9ms
[2026-06-08 16:28:01] INFO Worker for job “process-outbox” online
[2026-06-08 16:28:01] INFO Worker for job process-outbox sent a message: done
[2026-06-08 16:28:01] WARN Missing mail.from config, falling back to a generated email address. Please update your config file and set a valid from address
[2026-06-08 16:28:01] INFO [OUTBOX] No pending outbox entries to process
[2026-06-08 16:29:15] INFO “GET /biodisponibilita-della-fisetina-e-precauzioni-antiemorragiche/” 404 21ms
[2026-06-08 16:29:17] INFO “GET /public/ghost.min.css?v=0b5720d112” 200 3ms
[2026-06-08 16:29:23] INFO “GET /robots.txt” 200 2ms
[2026-06-08 16:29:30] INFO “GET /content/images/size/w1200/2026/06/ChatGPT-Image-3-giu-2026–16_16_46.png” 200 11ms
[2026-06-08 16:30:13] WARN Ghost is shutting down
[2026-06-08 16:30:13] WARN Ghost has shut down
[2026-06-08 16:30:13] WARN Your site is now offline
[2026-06-08 16:30:13] WARN Ghost was running for 8 hours
[2026-06-08 16:30:14] INFO Ghost is running in production…
[2026-06-08 16:30:14] INFO Your site is now available on https://epicuro.net/
[2026-06-08 16:30:14] INFO Ctrl+C to shut down
[2026-06-08 16:30:14] WARN Can’t connect to the bootstrap socket (localhost 8000) ECONNREFUSED.
[2026-06-08 16:30:14] WARN Tries: 0
[2026-06-08 16:30:14] WARN Retrying…
[2026-06-08 16:30:15] WARN Can’t connect to the bootstrap socket (localhost 8000) ECONNREFUSED.
[2026-06-08 16:30:15] WARN Tries: 1
[2026-06-08 16:30:15] WARN Retrying…
[2026-06-08 16:30:15] WARN Can’t connect to the bootstrap socket (localhost 8000) ECONNREFUSED.
[2026-06-08 16:30:15] WARN Tries: 2
[2026-06-08 16:30:15] WARN Retrying…
[2026-06-08 16:30:15] WARN Can’t connect to the bootstrap socket (localhost 8000) ECONNREFUSED.
[2026-06-08 16:30:15] INFO Ghost server started in 1.614s
[2026-06-08 16:30:15] INFO Database is in a ready state.
[2026-06-08 16:30:15] INFO Ghost database ready in 1.861s
[2026-06-08 16:30:15] WARN Missing mail.from config, falling back to a generated email address. Please update your config file and set a valid from address
[2026-06-08 16:30:16] WARN Theme translations file locales/it.json not found.
[2026-06-08 16:30:16] WARN Theme translations falling back to locales/en.json.
[2026-06-08 16:30:16] INFO Invalidating assets for regeneration
[2026-06-08 16:30:17] INFO [EmailAnalytics] Initialized with SEQUENTIAL processing mode
[2026-06-08 16:30:18] INFO Adding offloaded job to the inline job queue
[2026-06-08 16:30:18] INFO Scheduling job clean-gifts at 58 36 3 * * *. Next run on: Tue Jun 09 2026 03:36:58 GMT+0000 (Coordinated Universal Time)
[2026-06-08 16:30:18] INFO Adding offloaded job to the inline job queue
[2026-06-08 16:30:18] INFO Scheduling job send-gift-reminders at 19 11 4 * * *. Next run on: Tue Jun 09 2026 04:11:19 GMT+0000 (Coordinated Universal Time)
[2026-06-08 16:30:18] INFO Adding offloaded job to the inline job queue
[2026-06-08 16:30:18] INFO Scheduling job clean-expired-comped at 55 24 2 * * *. Next run on: Tue Jun 09 2026 02:24:55 GMT+0000 (Coordinated Universal Time)
[2026-06-08 16:30:18] INFO Adding offloaded job to the inline job queue
[2026-06-08 16:30:18] INFO Scheduling job clean-tokens at 29 21 9 * * *. Next run on: Tue Jun 09 2026 09:21:29 GMT+0000 (Coordinated Universal Time)
[2026-06-08 16:30:18] INFO Pinging Explore with Payload https://explore.ghost.org/api/update {“ghost”:“6.44.1”,“site_uuid”:“ac0009bc-6b49-4f48-82af-ab1a57edbf2b”,“url”:“https://epicuro.net”,“theme”:“ruby-epicuro”,“facebook”:“profile.php?id=61577485033807”,“twitter”:“@epicuro_net”,“posts_total”:106,“posts_last”:“2026-06-08T11:19:52.000Z”,“posts_first”:“2025-10-19T22:25:15.000Z”,“members_total”:16,“mrr”:}
[2026-06-08 16:30:18] INFO Ghost booted in 4.463s
[2026-06-08 16:30:18] INFO Adding offloaded job to the inline job queue
[2026-06-08 16:30:18] INFO Scheduling job update-check at 51 45 13 * * *. Next run on: Tue Jun 09 2026 13:45:51 GMT+0000 (Coordinated Universal Time)
[2026-06-08 16:30:18] INFO Adding offloaded job to the inline job queue
[2026-06-08 16:30:18] INFO Scheduling job process-outbox at 47 0/5 * * * *. Next run on: Mon Jun 08 2026 16:30:47 GMT+0000 (Coordinated Universal Time)
[2026-06-08 16:30:18] INFO Running milestone emails job on Tue Jun 09 2026 16:30:18 GMT+0000 (Coordinated Universal Time)
[2026-06-08 16:30:18] WARN Can’t connect to the bootstrap socket (localhost 8000) ECONNREFUSED.
[2026-06-08 16:30:18] WARN Tries: 0
[2026-06-08 16:30:18] WARN Retrying…
[2026-06-08 16:30:18] INFO URL Service ready in 2122ms
[2026-06-08 16:30:18] ERROR No webhook secret found - cannot initialise
[2026-06-08 16:30:18] WARN Can’t connect to the bootstrap socket (localhost 8000) ECONNREFUSED.
[2026-06-08 16:30:18] WARN Tries: 1
[2026-06-08 16:30:18] WARN Retrying…
[2026-06-08 16:30:18] WARN Can’t connect to the bootstrap socket (localhost 8000) ECONNREFUSED.
[2026-06-08 16:30:18] WARN Tries: 2
[2026-06-08 16:30:18] WARN Retrying…
[2026-06-08 16:30:18] INFO Explore Response 200 OK
[2026-06-08 16:30:18] WARN Can’t connect to the bootstrap socket (localhost 8000) ECONNREFUSED.
[2026-06-08 16:30:47] INFO Worker for job “process-outbox” online
[2026-06-08 16:30:47] INFO Worker for job process-outbox sent a message: done
[2026-06-08 16:30:47] WARN Missing mail.from config, falling back to a generated email address. Please update your config file and set a valid from address
[2026-06-08 16:30:47] INFO [OUTBOX] No pending outbox entries to process
As you can see, the auto-heal process triggers this error immediately after the URL service is ready: [2026-06-08 16:30:18] ERROR No webhook secret found - cannot initialise
However, outbound connectivity seems fine since the Explore ping returns a 200 OK: [2026-06-08 16:30:18] INFO Explore Response 200 OK
It looks like the instance is missing the webhook secret entirely. How can I force Ghost to regenerate it or manually inject it into the database/config?
Yes, the instance is currently running on https://epicuro.net, but the setup underwent some configurations and directory adjustments during development. The name of the blog started with the domain hub.curanderie.com that is still resident in the same server but it is not used anymore It’s highly likely that the central server (ap.ghost.org) has a mismatched record or a broken webhook binding for my site.
Here are my current production details to help @Sag clear or reset the registration on your end:
Current Domain:https://epicuro.net
Ghost Version: 6.44.1
Environment: Production
If you can purge or reset the registration entries for epicuro.net on ap.ghost.org, I can restart my instance so the auto-heal system can provision a fresh webhook secret.
Thank you both so much for the incredible support!
We’ve recently shipped a fix to allow site domain changes to happen without breaking the Network tab.
Looking at the database behind ap.ghost.org and production logs, it seems you’re facing a different problem: your GET /.well-known/jwks.json endpoint is currently pointing to the ActivityPub server, whereas it should be pointing to Ghost: https://epicuro.net/ghost/.well-known/jwks.json
To fix that, ensure your nginx / Caddy configuration is only pointing /.ghost/activitypub/* and /.well-known/(webfinger|nodeinfo) to ap.ghost.org . Other endpoints should point to Ghost. See examples: