Files
SocialPub/tools/pasture/Caddyfile
T
thepraandClaude Opus 5.5 9b792042e6 R9 Web Push, then the honest version: VAPID key, push subscriptions, encrypted pushes, 4.5.0 advertised
The server's VAPID key (PushKeys, made on first need, in Mongo) is the instance API's vapid.public_key and every app's
vapid_key. /api/v1/push/subscription (POST, GET, PUT, DELETE) keeps one subscription per access token, so per persona;
every notification kept (never a filtered one) is queued as a SendPush job for the subscriptions whose alert and policy
admit it, and sent through the `push` client (the safe handler, https only) encrypted as RFC 8291 aes128gcm or the
aesgcm draft with an ES256 VAPID JWT. 404/410 delete the subscription, 429/5xx/timeouts retry, other answers drop the
push. Subscriptions end with their tokens (revocation, sessions ended, suspension, deletion, a restore); backups hold
neither keys nor subscriptions. The walk of every Mastodon 4.3-4.5 client route (docs/MASTODON-API.md) added
conversations/:id/unread, domain_blocks/preview, v2 notifications clear and PUT policy, /oauth/userinfo and stubs, so both
instance APIs now say 4.5.0 (compatible; PrivaPub <release>). The pasture gets a push sink (pushsink.test) and
scenarios/push.sh in batch A.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WpVCoDeM1qUTRp4fXQdfof
2026-10-18 09:18:26 +02:00

219 lines
3.3 KiB
Caddyfile

{
local_certs
skip_install_trust
}
privapub.test {
tls internal
reverse_proxy pasture-privapub:80
}
gts.test {
tls internal
reverse_proxy pasture-gts:80
}
mastodon.test {
tls internal
reverse_proxy pasture-mastodon:3000
}
misskey.test {
tls internal
reverse_proxy pasture-misskey:3000
}
sharkey.test {
tls internal
reverse_proxy pasture-sharkey:3000
}
lemmy.test {
tls internal
reverse_proxy pasture-lemmy:8536
}
akkoma.test {
tls internal
reverse_proxy pasture-akkoma:4000
}
decepub.test {
tls internal
reverse_proxy pasture-decepub:80
}
mailpit.test {
tls internal
reverse_proxy pasture-mailpit:8025
}
hollo.test {
tls internal
reverse_proxy pasture-hollo:3000
}
iceshrimp.test {
tls internal
reverse_proxy pasture-iceshrimp:3000
}
pleroma.test {
tls internal
reverse_proxy pasture-pleroma:4000
}
peertube.test {
tls internal
reverse_proxy pasture-peertube:9000
}
pixelfed.test {
tls internal
reverse_proxy pasture-pixelfed:8080
}
wordpress.test {
tls internal
reverse_proxy pasture-wordpress:80
}
friendica.test {
tls internal
reverse_proxy pasture-friendica:80
}
mobilizon.test {
tls internal
reverse_proxy pasture-mobilizon:4000
}
gancio.test {
tls internal
reverse_proxy pasture-gancio:13120
}
funkwhale.test {
tls internal
reverse_proxy pasture-funkwhale:80
}
piefed.test {
tls internal
reverse_proxy pasture-piefed:5000
}
mbin.test {
tls internal
reverse_proxy pasture-mbin:80
}
nodebb.test {
tls internal
reverse_proxy pasture-nodebb:4567
}
castopod.test {
tls internal
reverse_proxy pasture-castopod:8080
}
ktistec.test {
tls internal
reverse_proxy pasture-ktistec:3000
}
forte.test {
tls internal
reverse_proxy pasture-forte:8080
}
hubzilla.test {
tls internal
reverse_proxy pasture-hubzilla:8080
}
vernissage.test {
tls internal
reverse_proxy pasture-vernissage:8080
}
bookwyrm.test {
tls internal
reverse_proxy pasture-bookwyrm:8000
}
ghost.test {
tls internal
handle /.ghost/activitypub/* {
reverse_proxy pasture-ghost-ap:8080
}
handle /.well-known/webfinger {
reverse_proxy pasture-ghost-ap:8080
}
handle /.well-known/nodeinfo {
reverse_proxy pasture-ghost-ap:8080
}
handle {
reverse_proxy pasture-ghost:2368
}
}
owncast.test {
tls internal
reverse_proxy pasture-owncast:8080
}
writefreely.test {
tls internal
reverse_proxy pasture-writefreely:8080
}
snac.test {
tls internal
reverse_proxy pasture-snac:8001
}
mitra.test {
tls internal
reverse_proxy pasture-mitra:8383
}
aoderelay.test {
tls internal
reverse_proxy pasture-aoderelay:8080
}
relay.test {
tls internal
reverse_proxy pasture-relay-server:8080
}
smithereen.test {
tls internal
handle /i/* {
reverse_proxy pasture-smithereen-imgproxy:8080
}
handle_path /s/* {
reverse_proxy pasture-smithereen-files:80
}
handle {
reverse_proxy pasture-smithereen:4567
}
}
lemmy19.test {
tls internal
reverse_proxy pasture-lemmy19:8536
}
pushsink.test {
tls internal
reverse_proxy pasture-pushsink:8080
}
flood1.test, flood2.test, flood3.test, flood4.test, flood5.test, flood6.test, flood7.test, flood8.test, flood9.test, flood10.test, flood11.test, flood12.test, flood13.test, flood14.test, flood15.test, flood16.test, flood17.test, flood18.test, flood19.test, flood20.test {
tls internal
reverse_proxy pasture-flood:8080
}