# Activitypub with Traefik reveres proxy

**URL:** <https://forum.ghost.org/t/activitypub-with-traefik-reveres-proxy/59273>\
**Category:** Developer help\
**Created:** [August 5, 2025, 10:30am UTC](https://forum.ghost.org/t/activitypub-with-traefik-reveres-proxy/59273 "2025-08-05T10:30:59Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Avrohom\_Gross](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/avrohom_gross/32/37017_2.png) [@Avrohom\_Gross](https://forum.ghost.org/u/Avrohom_Gross)\
**Post date:** [August 5, 2025, 10:30am UTC](https://forum.ghost.org/t/activitypub-with-traefik-reveres-proxy/59273/1 "2025-08-05T10:30:59Z")

</div>

I am currently using easypanel which uses traefik in front of docker as my reverse proxy.

How do I correctly set up traefik for to make activity pub work.

Currently getting this

ERROR Could not get webhook secret for ActivityPub FetchError: invalid json response body at [https://pupontech.com/.ghost/activitypub/v1/site](https://pupontech.com/.ghost/activitypub/v1/site) reason: Unexpected token ‘\<’, "\<!DOCTYPE "… is not valid JSON  
[2025-08-04 18:27:54] ERROR No webhook secret found - cannot initialise

---

<div class="post-metadata">

**Author:** ![Kernic](https://avatars.discourse-cdn.com/v4/letter/k/a6a055/32.png) [@Kernic](https://forum.ghost.org/u/Kernic)\
**Post date:** [January 4, 2026, 1:32pm UTC](https://forum.ghost.org/t/activitypub-with-traefik-reveres-proxy/59273/2 "2026-01-04T13:32:01Z")

</div>

Same problem here.

`[2026-01-04 13:29:34] ERROR Could not get webhook secret for ActivityPub FetchError: invalid json response body at ``https://kerscher.li/.ghost/activitypub/v1/si`  
`te/ reason: Unexpected token '<', "<!DOCTYPE "... is not valid JSON `  
`[2026-01-04 13:29:34] ERROR No webhook secret found - cannot initialise`

That are my labels:  
`labels: `  
` ` **`-`** `"traefik.enable=true" `  
` # Match both kerscher.li and www.kerscher.li`  
` ` **`-`** `"traefik.http.routers.ghost-root.rule=Host(`kerscher.li`) || Host(`www.kerscher.li`)" `  
` ` **`-`** `"traefik.http.routers.ghost-root.entrypoints=websecure" `  
` ` **`-`** `"traefik.http.routers.ghost-root.tls.certresolver=letsencrypt" `  
` # Redirect www to non-www`  
` ` **`-`** `"traefik.http.middlewares.root-redirect-www.redirectregex.regex=^https?://www.kerscher.li/(.*)" `  
` ` **`-`** `"traefik.http.middlewares.root-redirect-www.redirectregex.replacement=https://kerscher.li/$$1" `  
` ` **`-`** `"traefik.http.routers.ghost-root.middlewares=root-redirect-www" `  
` ` **`-`** `"traefik.http.routers.ghost-root.priority=1000" `  
` ` **`-`** `"traefik.http.services.ghost-root.loadbalancer.server.port=2368" `  
` ` **`-`** `"traefik.docker.network=traefik-public" `  
` # ActivityPub Settings`  
` ` **`-`** `"traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto = http" `  
` ` **`-`** `"traefik.http.routers.ghost-root.service=ghost-server" `  
` ` **`-`** `"traefik.http.services.ghost-server.loadbalancer.passhostheader=true" `  
` # Activity Pub`  
` ` **`-`** `"traefik.http.services.ghost-activitypub.loadbalancer.passhostheader=true" `  
` ` **`-`** `"traefik.http.services.ghost-activitypub.loadbalancer.server.url=https://ap.ghost.org" `  
` ` **`-`** `"traefik.http.routers.ghost-activitypub.entrypoints=websecure" `  
` ` **`-`** `"traefik.http.routers.ghost-activitypub.service=ghost-activitypub" `  
` ` **`-`** `"traefik.http.routers.ghost-activitypub.tls=true" `  
` ` **`-`** `"traefik.http.routers.ghost-activitypub.tls.certresolver=leresolver" `  
` ` **`-`** `"traefik.http.routers.ghost-activitypub.rule=Host(`kerscher.li`) && (PathPrefix(`/.ghost/activitypub/`) || Path(`/.well-known/webfinger`) || Path(`/.we>`

---

<div class="post-metadata">

**Author:** ![satonotdead](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/satonotdead/32/33666_2.png) [@satonotdead](https://forum.ghost.org/u/satonotdead)\
**Post date:** [January 13, 2026, 1:08pm UTC](https://forum.ghost.org/t/activitypub-with-traefik-reveres-proxy/59273/3 "2026-01-13T13:08:11Z")

</div>

Same here, I just can’t use Ghost behind Nginx as reverse proxy.

---

<div class="post-metadata">

**Author:** ![Cathy\_Sarisky](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/cathy_sarisky/32/25750_2.png) [@Cathy\_Sarisky](https://forum.ghost.org/u/Cathy_Sarisky)\
**Post date:** [January 13, 2026, 1:09pm UTC](https://forum.ghost.org/t/activitypub-with-traefik-reveres-proxy/59273/4 "2026-01-13T13:09:55Z")

</div>

@ajfriesen posted this link on another thread: [Ghost 6 and ActivityPub behind Traefik on Docker](https://florianjensen.com/2025/08/06/ghost-6-activitypub-traefik-docker/)

---

<div class="post-metadata">

**Author:** ![satonotdead](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/satonotdead/32/33666_2.png) [@satonotdead](https://forum.ghost.org/u/satonotdead)\
**Post date:** [January 18, 2026, 2:31pm UTC](https://forum.ghost.org/t/activitypub-with-traefik-reveres-proxy/59273/5 "2026-01-18T14:31:22Z")

</div>

Thanks, I figured it out making some adjustments on my end and now I’m looking to get into Activitypub 🙂
