Ports: whether each port is reachable from outside #55

Merged
jcoffey-dev merged 1 commits from feature/port-reachability into main 2026-09-29 01:07:29 +00:00
Owner

The admin side of the settings-reorg Ports reachability check (option A). Needs inbuxa-server #105 (GET /api/ports/check); against a server without it, the card shows the error.

A Reachable from outside card sits under the standard-ports table on Network › Listeners.

  • Cluster: a grid with ports down the side and nodes across the top. Each cell is one of:

    • Reached from mx2, mx3 (green);
    • Reached from mx2. Not from mx3: 2001:db8::1 no answer within 5 seconds (amber);
    • Not from … (red);
    • Not tried yet, before a node's first round.

    It also says the servers try each other every 10 minutes by public name, and how old the oldest result is. A port counts as reached from a prober only when every address its name resolves to answered, so a missing IPv6 rule shows up.

  • Single server: it says plainly that a server can't see its own firewall from inside, lists whether each port is listening here, and suggests nc -vz <name> <port> from another network.

  • Refresh re-reads the latest results. The server does the probing on its own schedule.

Checked:

  • Unit tests for the cell states (all reached, partly, blocked, pending, unresolvable name) and the oldest-result time. 506 tests pass in total.
  • Typecheck and lint are clean.
  • In Chrome against a local single server built from #105 with two test listeners: the card showed 18026 as listening and 18025 as not.
  • The cluster grid has only been exercised by the unit tests. It gets its first real data after #105 is released and rolled.

English only: 8 new strings.

The admin side of the settings-reorg Ports reachability check (option A). **Needs inbuxa-server #105** (`GET /api/ports/check`); against a server without it, the card shows the error. A **Reachable from outside** card sits under the standard-ports table on Network › Listeners. - **Cluster:** a grid with ports down the side and nodes across the top. Each cell is one of: - *Reached from mx2, mx3* (green); - *Reached from mx2. Not from mx3: 2001:db8::1 no answer within 5 seconds* (amber); - *Not from …* (red); - *Not tried yet*, before a node's first round. It also says the servers try each other every 10 minutes by public name, and how old the oldest result is. A port counts as reached from a prober only when every address its name resolves to answered, so a missing IPv6 rule shows up. - **Single server:** it says plainly that a server can't see its own firewall from inside, lists whether each port is listening here, and suggests `nc -vz <name> <port>` from another network. - **Refresh** re-reads the latest results. The server does the probing on its own schedule. **Checked:** - Unit tests for the cell states (all reached, partly, blocked, pending, unresolvable name) and the oldest-result time. 506 tests pass in total. - Typecheck and lint are clean. - In Chrome against a local single server built from #105 with two test listeners: the card showed 18026 as listening and 18025 as not. - The cluster grid has only been exercised by the unit tests. It gets its first real data after #105 is released and rolled. English only: 8 new strings.
jcoffey-dev added 1 commit 2026-09-29 01:02:58 +00:00
Ports: whether each port is reachable from outside
ci / build (pull_request) Successful in 2m37s
ci / publish (pull_request) Skipped
fc432744e5
jcoffey-dev merged commit ec4f2ff39a into main 2026-09-29 01:07:29 +00:00
jcoffey-dev deleted branch feature/port-reachability 2026-09-29 01:07:29 +00:00
Sign in to join this conversation.