From b26c43b809cc2981baa385dfd8d092d2aedcc721 Mon Sep 17 00:00:00 2001 From: Josh Poole Date: Mon, 31 Aug 2026 15:16:04 +0100 Subject: [PATCH] 20260831 - Address nodes by their own name, not the shared one Every service URL here pointed at owl.local. That name is answered by every node on the network at once, so on a site with more than one it reaches whichever replies first, which is not what someone reading a table of a specific node's services is asking for. The managed-node table now uses ret.local, the address derived from the Mender node_id that never changes for the life of the board, with owl.local described for what it is: a way to find a node rather than a way to reach one. The SSH section matters most. owl.local resolving to different hosts between connections trips REMOTE HOST IDENTIFICATION HAS CHANGED, so that instruction was actively going to bite someone. STANDALONE is a different case and had the same URLs wrongly. It covers running the stack on any Linux host, where neither owl.local nor ret.local exists, so it now points at the host's own address and mentions the mDNS names only as something owl-os adds. Co-Authored-By: Claude Opus 5 --- README.md | 29 +++++++++++++++++++++-------- STANDALONE.md | 15 +++++++++++---- 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 23f9cb1..35c41a6 100644 --- a/README.md +++ b/README.md @@ -8,22 +8,35 @@ For development/testing without Mender, see [STANDALONE.md](STANDALONE.md). ## Web Interfaces +Every node has a permanent address of its own, `ret.local`, derived from +its Mender node_id and unchanged for the life of the board. The node's own page +shows it, under **Configuration > This node**. + | Service | Port | URL | Description | |---------|------|-----|-------------| -| retina-gui | 80 | `http://owl.local` | Node management, SSH keys, service links | -| blah2 | 49152 | `http://owl.local:49152` | Passive radar UI | -| tar1090 | 8078 | `http://owl.local:8078` | ADS-B aircraft map | -| adsb2dd | 49155 | `http://owl.local:49155` | Delay-Doppler truth overlay | -| retina-spectrum | 3020 | `http://owl.local:3020` | Spectrum analyzer | +| retina-gui | 80 | `http://ret.local` | Node management, SSH keys, service links | +| blah2 | 49152 | `http://ret.local:49152` | Passive radar UI | +| tar1090 | 8078 | `http://ret.local:8078` | ADS-B aircraft map | +| adsb2dd | 49155 | `http://ret.local:49155` | Delay-Doppler truth overlay | +| retina-spectrum | 3020 | `http://ret.local:3020` | Spectrum analyzer | + +`http://owl.local` also reaches a node, but it is a shared name that *every* +node on the network answers, so with more than one node it reaches whichever +replies first. Use it to find a node; use `ret.local` to work with a +particular one. ## SSH Access -Add your SSH public key via the web GUI at `http://owl.local`: +Add your SSH public key via the web GUI: 1. On your computer, copy your public key: `cat ~/.ssh/id_ed25519.pub` -2. Open `http://owl.local` in a browser +2. Open `http://owl.local` in a browser, and pick your node 3. Paste the key and click "Add Key" -4. SSH in: `ssh node@owl.local` +4. SSH in: `ssh node@ret.local` + +Always SSH to the node's own `ret.local`, never to `owl.local`. That +name is answered by every node on the network, so which host you reach can +change between connections and SSH will refuse on the host key mismatch. Keys persist across reboots and OTA updates. diff --git a/STANDALONE.md b/STANDALONE.md index 3ccbd5f..6fb8b98 100644 --- a/STANDALONE.md +++ b/STANDALONE.md @@ -58,13 +58,20 @@ sudo docker compose up -d ## Web Interfaces +Reach these on the host you are running the stack on: `localhost` when you are +sitting at it, otherwise its IP or hostname. + | Service | URL | Description | |---------|-----|-------------| -| blah2 | http://owl.local:49152/ | Passive radar display | -| tar1090 | http://owl.local:8078/ | ADS-B aircraft map | -| adsb2dd | http://owl.local:49155/ | Delay-Doppler truth overlay | +| blah2 | http://\:49152/ | Passive radar display | +| tar1090 | http://\:8078/ | ADS-B aircraft map | +| adsb2dd | http://\:49155/ | Delay-Doppler truth overlay | + +On owl-os the node also answers to its own `ret.local`, and to the +shared `owl.local` that every node on the network answers. On any other Linux +host neither name exists, so use the host's address. -Note: retina-gui (http://owl.local/) is not fully supported when running standalone (yet), config is not editable via the GUI and should be done manually. +Note: retina-gui is not fully supported when running standalone (yet), config is not editable via the GUI and should be done manually. ## Development Workflow