Skip to content

[feat] Move the relay to upstream 0.4.2 and report port-unstable - #13

Merged
ok merged 3 commits into
nextfrom
ok/upstream-0.4.2
Sep 22, 2026
Merged

ok merged 3 commits into
nextfrom
ok/upstream-0.4.2

Conversation

@ok

@ok ok commented Sep 22, 2026

Copy link
Copy Markdown
Owner

Why

Upstream 0.4.2 (ok/mirall-relay#22) stops reporting a relay as reachable when hyperdht cannot offer clients a direct connection: /readyz now carries state (reachable, firewalled, port-unstable, unknown, …) and returns 200 only for reachable. Until now Internet Reachability stayed green while the relay's outbound port was rewritten and members could not connect (the 2026-09-21 incident).

What

  • Submodule → v0.4.2. Re-checked the startos/utils.ts assumptions against it (uid, node path, keys.js exports, admin token file, members path, env names): all hold; /readyz and /status.json shapes updated in ReadyzBody / StatusReachability and UPDATING.md.
  • Internet Reachability: fails on port-unstable; shows loading for up to 10 min on unknown (address re-learning after an IP change), then fails. Falls back to the old firewalled-only logic when state is absent.
  • Test Reachability: explains each state; new row Seen from outside as.
  • Firewalled messages and instructions now say to switch on a Public address (StartOS installs with public addresses off), and recommend StartTunnel for home servers: a router address is enabled per literal IP and switches off at every ISP IP change (seen on the box 2026-09-22).
  • README: Choosing a Setup, limitations 1, 2, 9 and new 12; CONTRIBUTING fault-injection recipe.
  • 0.4.2:0 release notes in all five locales; new strings translated.
  • Also carries 97738e8 (operator-page title fix, previously unpushed).

Verified

  • npm run check and prettier clean; make builds both arches (x86_64 manifest 0.4.2:0). Note: on this Mac make needs BUILDX_BUILDER=<a docker-container builder> while Docker Desktop's containerd image store is off.
  • Installed on the box: firewalled at first because the router address had switched off after the IP change; after moving to StartTunnel (public address + outbound gateway wg0) /readyz 200 reachable at 178.105.135.38:49737 within 13 s, and the monitor's member probe bridged (2 sessions, 1 pairing, 68 KB).
  • Upstream behaviour verified on a public-IP VM with injected port rewrites (see [fix] Report a rewritten outbound port as not reachable mirall-relay#22).

🤖 Generated with Claude Code

ok and others added 3 commits September 21, 2026 08:01
The status and members pages now read "Mirall Relay" instead of the
package id. Upstream's v0.4.1 tag moved to carry it; the package version
is unchanged.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Pins the submodule to v0.4.2. Internet Reachability now fails on
state "port-unstable" (outbound port rewritten) instead of reading
green, and shows loading for up to 10 minutes while the relay
re-learns its address after an IP change. Test Reachability explains
each state and shows the address seen from outside. Docs cover the
three setups, limitation 12 and a fault-injection recipe.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
StartOS installs the relay with public addresses off, and the
firewalled message and instructions only said to forward the port.
Both now name the Public address switch. A router address is enabled
per literal IP, so it drops at every ISP IP change: StartTunnel is
now the recommended home setup, and a router forward only for a
static IP.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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