About: name the webmail node and the mail server node #16

Merged
jcoffey-dev merged 1 commits from fork/about-node-identity into main 2026-09-26 04:05:46 +00:00
Owner

For troubleshooting the cluster: Settings > About now shows

  • Webmail node: NODE_NAME (set per host by hosts-baseline deploy-web.sh: host1/host2/host3), else the container's hostname.
  • Mail server node: the address the server's name resolves to from inside the webmail container (pinned to the local node by the host entry), named by its PTR record, e.g. mx2.inbuxa.com (95.216.2.52).

The server gives its node name only to administrators (x:ClusterNode), so the webmail works it out itself. New endpoint GET /api/about/nodes (session required, 401 without one), fetched on every visit to About, cached for a minute on the server.

Fork-only, not for upstream ihasmail.

Translation: 4 new strings ("Webmail node", "Mail server node", "{host} does not resolve", "unavailable"), added to all 9 catalogues. Fallbacks stay at 19 per language, as on main. The Dutch ones join the native review.

Checked: typecheck; server tests 270/270 (4 new in nodes.test.ts); web tests 1423/1423; against the mock, the endpoint returns {"webmail":"test-node-1","mailServer":{"host":"localhost","address":"::1","name":"localhost"}}. The rendered page was not viewed in a browser.

After merging: deploy on host2, then hosts-baseline/deploy-web.sh --sync (hosts-baseline #4), which sets NODE_NAME and the host entry on all three copies.

For troubleshooting the cluster: Settings > About now shows - **Webmail node**: `NODE_NAME` (set per host by hosts-baseline `deploy-web.sh`: host1/host2/host3), else the container's hostname. - **Mail server node**: the address the server's name resolves to from inside the webmail container (pinned to the local node by the host entry), named by its PTR record, e.g. `mx2.inbuxa.com (95.216.2.52)`. The server gives its node name only to administrators (`x:ClusterNode`), so the webmail works it out itself. New endpoint `GET /api/about/nodes` (session required, 401 without one), fetched on every visit to About, cached for a minute on the server. **Fork-only**, not for upstream ihasmail. Translation: 4 new strings ("Webmail node", "Mail server node", "{host} does not resolve", "unavailable"), added to all 9 catalogues. Fallbacks stay at 19 per language, as on main. The Dutch ones join the native review. Checked: typecheck; server tests 270/270 (4 new in `nodes.test.ts`); web tests 1423/1423; against the mock, the endpoint returns `{"webmail":"test-node-1","mailServer":{"host":"localhost","address":"::1","name":"localhost"}}`. The rendered page was not viewed in a browser. After merging: deploy on host2, then `hosts-baseline/deploy-web.sh --sync` (hosts-baseline #4), which sets `NODE_NAME` and the host entry on all three copies.
jcoffey-dev added 1 commit 2026-09-26 03:46:13 +00:00
About: name the webmail node and the mail server node
ci / version (pull_request) Skipped
ci / node (pull_request) Successful in 2m26s
ci / publish (pull_request) Skipped
ci / docker-build (pull_request) Successful in 53s
6b44705bfd
Settings > About shows which webmail node answered (NODE_NAME, else the
container hostname) and which inbuxa node it talks to: the address the
server's name resolves to from the webmail, named by its PTR record. The
server only tells administrators its node name, so the webmail works it
out itself. Fetched from /api/about/nodes on every visit, cached for a
minute server-side, for troubleshooting a cluster.

Fork-only: upstream ihasmail runs one webmail against one server.
4 new strings, translated in all 9 catalogues.
jcoffey-dev merged commit 3507a21599 into main 2026-09-26 04:05:46 +00:00
jcoffey-dev deleted branch fork/about-node-identity 2026-09-26 04:05:47 +00:00
Sign in to join this conversation.