- watchtower: move Telegram token/chat ID to .env instead of plaintext in compose - plex: remove stale/dead PLEX_CLAIM token - uptime-kuma: mount docker.sock read-only (only needs to read container state) - home-assistant: drop privileged: true (no device passthrough configured) - glances: drop privileged: true, bind dashboard port to 127.0.0.1 - couchdb, docker-registry, leafweb: bind ports to 127.0.0.1 (proxy/localhost-only access confirmed, no direct LAN clients)