diff --git a/README.md b/README.md index 9c074e95..b04abc72 100644 --- a/README.md +++ b/README.md @@ -446,7 +446,8 @@ Set `environmentFiles` for secrets like API keys. Protected WebUI runtime keys f The server binds to `127.0.0.1` by default. To reach it from another machine, use an SSH tunnel (`ssh -N -L 8787:127.0.0.1:8787 user@host`, which `start.sh` -prints for you over SSH) or use the preferred [Tailscale Serve](https://tailscale.com/docs/features/tailscale-serve) +prints for you over SSH) or, on a single-operator or access-restricted tailnet, +use the preferred [Tailscale Serve](https://tailscale.com/docs/features/tailscale-serve) flow, which keeps WebUI on loopback behind tailnet-only HTTPS. Direct access to `http://:8787` with `HERMES_WEBUI_HOST=0.0.0.0` and `HERMES_WEBUI_PASSWORD` is a fallback when Serve is unavailable. Full setup and diff --git a/docs/remote-access.md b/docs/remote-access.md index 12f512ee..9e061964 100644 --- a/docs/remote-access.md +++ b/docs/remote-access.md @@ -34,13 +34,22 @@ The Hermes Web UI is fully responsive with a mobile-optimized layout (hamburger sidebar, sidebar top tabs in the drawer, touch-friendly controls), so it works well as a daily-driver agent interface from your phone. -### Preferred: Tailscale Serve +### Preferred on a single-operator or access-restricted tailnet: Tailscale Serve [Tailscale Serve](https://tailscale.com/docs/features/tailscale-serve) exposes the WebUI at a tailnet-only HTTPS/MagicDNS URL while Hermes keeps listening on `127.0.0.1`. Serve owns the network front door; continue launching Hermes WebUI through the maintained `start.sh` or systemd path. +Hermes currently sees every Serve login request as coming from the local proxy, +so password and passkey logins share one five-attempt, 60-second rate-limit +bucket across all clients. Use this path for a single operator, or restrict +access to the Serve node to the intended operator with [tailnet access-control +rules](https://tailscale.com/docs/features/access-control). On a broader +multi-user tailnet, use the SSH tunnel above or the direct-IP fallback below +until Hermes can safely attribute login attempts per Serve client. If the +shared bucket is reached, wait 60 seconds before trying again. + 1. Install [Tailscale](https://tailscale.com/download) on your server and your iPhone/Android. 2. Before publishing anything, enable application authentication. Prefer