docs: bound Serve to restricted tailnets

This commit is contained in:
taljeon committed 2026-09-04 13:52:45 +09:00
1 parent c45ee592f2
commit 270832cf4c
2 files changed
+12 -2

No files matched your search

+2 -1
View File
@@ -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://<server-tailscale-ip>:8787` with `HERMES_WEBUI_HOST=0.0.0.0` and
`HERMES_WEBUI_PASSWORD` is a fallback when Serve is unavailable. Full setup and
+10 -1
View File
@@ -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