Skip to content

Docs: boxd auto-hibernate takes the tailnet node down with it - #135

Merged
pallaoro merged 1 commit into
mainfrom
docs/boxd-hibernate-gotcha
Aug 21, 2026
Merged

Docs: boxd auto-hibernate takes the tailnet node down with it#135
pallaoro merged 1 commit into
mainfrom
docs/boxd-hibernate-gotcha

Conversation

@pallaoro

Copy link
Copy Markdown
Member

An idle boxd machine cold-snapshots after four hours by default (auto_hibernate: 14400s). tailscaled goes down with the host, so the node reads offline, last seen … in the Tailscale console — which looks like an expired key or a deregistered node, and is neither. boxd machine wake <vm> restores it with its state and the same tailnet IP, and systemd brings the engine back on its own.

Hit for real on ateam-probe: hibernated after 6h idle → woken → node back at 100.81.40.73 → the phone's endpoint answered protocolVersion 2 again.

The iOS section gets the sharper warning, because there it isn't an annoyance: the phone cannot wake a hibernated box — waking needs the boxd CLI or API, which the iOS app knows nothing about. So "agents around the clock, reachable from your phone" and auto-hibernate are incompatible, and any box backing the phone needs auto-hibernate.timeout 0.

Docs only. The page's Verified against line is deliberately left at v0.1.39 / boxd 0.2.5 — re-stamping without re-running the whole recipe would be exactly the fake stamp the directory's rules forbid.

An idle boxd machine cold-snapshots after four hours by default
(`auto_hibernate: 14400s`). tailscaled goes down with the host, so the node
reads `offline, last seen …` in the Tailscale console — which looks like an
expired key or a deregistered node, and isn't. `boxd machine wake <vm>` restores
it with its state and the SAME tailnet IP, and systemd brings the engine back on
its own.

Hit for real on ateam-probe: hibernated after 6h idle, woken, node back at
100.81.40.73, and the phone's endpoint answered protocolVersion 2 again.

The iOS section gets the sharper warning, because there it isn't an annoyance:
the phone CANNOT wake a hibernated box — waking needs the boxd CLI or API, which
the iOS app knows nothing about. So "agents around the clock, reachable from
your phone" and auto-hibernate are incompatible, and any box backing the phone
needs `auto-hibernate.timeout 0`.
@pallaoro
pallaoro enabled auto-merge (squash) August 21, 2026 20:39
@pallaoro
pallaoro merged commit 3e04db6 into main Aug 21, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant