blumeops/docs
Erich Blume 35b43083a8 Add dynamic service guidance to public exposure guide
The guide was static-site-specific. Update to cover dynamic,
authenticated services (e.g., Forgejo):

- Add dynamic service nginx example with no blanket cache, proxy
  headers, WebSocket support, selective static asset caching
- Expand DDoS section: explain why dynamic services are more vulnerable
  (no cache absorbing traffic) and what mitigations exist
- Rewrite fail2ban section: irrelevant for static, essential for
  dynamic services; runs on indri watching service logs, needs
  forwarded IP headers
- Add comparison table: static vs dynamic across caching, sessions,
  rate limits, proxy headers, fail2ban, DDoS exposure
- Add pre-exposure checklist for dynamic services
- Note Tailscale ACL differences for non-k8s services (e.g., Forgejo
  on indri needs tag:homelab grant, not tag:k8s)
- Add inline comments in nginx.conf marking static-only directives

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 00:37:36 -08:00
..
changelog.d Rewrite public exposure guide to Fly.io + Tailscale approach 2026-02-08 00:37:36 -08:00
explanation Update all docs titles to human-readable (#117) 2026-02-07 21:44:57 -08:00
how-to Add dynamic service guidance to public exposure guide 2026-02-08 00:37:36 -08:00
reference Update all docs titles to human-readable (#117) 2026-02-07 21:44:57 -08:00
tutorials Update all docs titles to human-readable (#117) 2026-02-07 21:44:57 -08:00
index.md Remove title slug check and test duplicate titles (#116) 2026-02-07 21:26:18 -08:00
quartz.config.ts Move zk cards to docs/zk/ for documentation restructuring (#84) 2026-02-03 09:13:50 -08:00
quartz.layout.ts Move zk cards to docs/zk/ for documentation restructuring (#84) 2026-02-03 09:13:50 -08:00