{"endpoints":{"/api/admin/container/restart":"Restart a container (OAuth protected, POST)","/api/admin/iptv/candidates":"List candidate IPTV domains with health (OAuth protected, GET/DELETE)","/api/admin/iptv/server":"Get/set the IPTV proxy upstream domain (OAuth protected, GET/POST)","/api/admin/server/reboot":"Reboot the server (OAuth protected, POST)","/api/admin/vpn/status":"Get VPN location status (OAuth protected)","/api/admin/vpn/switch":"Switch VPN location (OAuth protected, POST)","/api/admin/whoami":"Check authentication status (OAuth protected)","/api/health":"Full health status (requires API key)","/api/health/iptv/status":"End-to-end IPTV proxy check - 200 ok / 503 broken (no auth)","/api/health/minecraft":"Minecraft container liveness","/api/health/ping":"Simple liveness check","/api/health/public-ip":"Public IP address (requires API key)","/api/health/services":"Internal service status - container + local port (requires API key)"},"service":"health-api"}
