9461285318
ServicesSync polls ~/dev/homelab every 5 minutes: runs git pull, then re-parses ansible/roles/traefik/defaults/main.yml to derive public and internal service lists. Services with public_host are shown publicly; others require internal network access. PageController now delegates to ServicesSync instead of hardcoded module attributes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>