This service is deployed on the folk.zone server as part of the homelab Docker Compose stack.
Container changes require full rebuild, not restart
When making changes to webmention views, CSS, or configuration, you must rebuild the container entirely. A simple restart will not pick up the changes because the files are baked into the Docker image during the build process.
Correct deployment sequence
1. Sync local changes to server:
```bash rsync -avz -e "ssh -i ~/.ssh/id_ed25519" \ server/webmention/ \ user@server:~/homelab/server/webmention/ ```
2. Rebuild the container on server:
```bash ssh -i ~/.ssh/id_ed25519 user@server \ "cd ~/homelab/server && docker compose up -d --build folkzone-webmention" ```
3. Test from external network (mobile hotspot/VPN) due to hairpin NAT limitations
Important: hairpin NAT constraint
You cannot test folk.zone URLs from your home network. The router does not support hairpin NAT. Always switch to mobile data or VPN when testing production URLs.
Services
- folkzone-webmention: Sinatra app (port 9019) - folkzone-webmention-db: MariaDB 11 - folkzone-webmention-redis: Redis 7
DNS
webmention.folk.zone → 104.205.127.217 (managed at Porkbun)
Caddy
Caddy terminates TLS and reverse-proxies to the webmention container. The Caddyfile block is in server/caddy/Caddyfile.