Files
Frank 9bfa0be85d chore(skills): promote runbook skills to managed-skills; drop superseded SKILL.md
- 31 new managed skills (anubis/arr/authentik/hermes/freetoken/podman/llm-swap
  runbooks etc.) now tracked.
- Removed superseded skills: omp_harness_config, peon_ping_integration
  (replaced by user-authored peon-ping-* managed skills),
  rocmfp4-strix-benchmark-orchestration.
- New memory-root skills: niri_compositor_ops, omp_git_workflow,
  omp_model_config, quadlet-media-migration, homelab-service-triage,
  hermes-dankclaw-ops, frank-default-large-ops, caddy-auth-dns-playbook.
2026-09-09 16:20:28 -07:00

30 lines
1.8 KiB
Markdown

# Caddy, Authentik, Anubis, and split-DNS playbook
Use this when modifying franksdank.cloud routes, DNS records, or auth wrapping.
Architecture:
- Single Caddy container on Dankclaw fronts services on Dankclaw and Dankserver.
- LAN DNS via Pi-hole resolves service names to 192.168.0.143.
- Public DNS via Porkbun points exposed names to WAN IP 71.227.227.172.
- TLS uses Porkbun DNS-01 wildcard certificates; ordinary A-record deletion does not break wildcard renewal.
- Porkbun credentials are machine-local secrets, never tracked.
Caddy rules:
- Keep Caddy admin enabled on 127.0.0.1:2019 inside the container so file watcher hot-reload works.
- Caddy routes by Host header; it does not care whether the name resolved via Pi-hole or Porkbun.
DNS changes:
1. If a service should be LAN-only, it is usually safe to remove its ordinary Porkbun A record while keeping Pi-hole local DNS.
2. Removing public DNS does not remove router port forwards or block direct IP access.
3. Do not casually remove public DNS for auth.franksdank.cloud; external login flows may need it.
4. Be cautious with gitea.franksdank.cloud because external git smart-HTTP use may depend on public DNS.
Auth wrapping:
- Protected via Authentik forward_auth: homepage, SearXNG, Hermes, Prometheus, RomM, Copyparty.
- Usually bypass forward_auth because they have native auth: Grafana, Gitea, OpenWebUI, Jellyfin, *arr, Pi-hole.
Verification pitfalls:
- Curl or bot-like clients may get Anubis JS challenge page with HTTP 200. That does not prove the app or outpost succeeded.
- Authentik outpost provider matching depends on exact Host header. Missing/wrong Host in CLI probes can produce misleading 404s.
- Verify end-to-end login in a real browser after solving Anubis. Use logs to debug outpost 404/provider host-match failures.