Files
archy/docker
archipelagoandClaude Opus 5 f4a323226e feat(bitcoin-ui): add Insights, Peers and Connect tabs for UmbrelOS parity
The Bitcoin UI was one long scroll: sync card, RPC/ZMQ cards and the
relay-sharing panel stacked on a single page, with node details hidden in a
modal. umbrelOS's rebuilt Bitcoin Node app splits the same surface across a
Home/Insights/Settings dock and shows considerably more.

Added, all of it additive — the sync state machine, the status-snapshot
staleness logic and the relay-sharing panel are untouched and just move
inside a tab panel:

- Five tabs (Node / Insights / Peers / Connect / Sharing) using the same
  segmented control as lnd-ui, which becomes a fixed bottom dock under
  768px with safe-area padding.
- Insights: the four stats umbrel's StatSummary shows (Connections,
  Mempool, Blockchain Size, Node Uptime), a Latest Blocks strip, and
  Block Size / Fee Rate / Block Rewards charts — the same three umbrel
  plots, drawn as CSS bars so nothing has to load a chart library past
  the CSP's script-src 'self'.
- Peers: sortable, filterable table with umbrel's exact columns (Peer,
  Network, Relay TXNs, In/Out, Connected) plus ping. Network is derived
  from getpeerinfo's own `network` field, falling back to address
  matching, so Tor/I2P/CJDNS/Local/Clearnet are labelled correctly.
- Connect: RPC and P2P details with a Local/Tor selector, QR codes and
  per-field copy buttons (umbrel's ConnectionDetails), including its
  unencrypted-LAN warning on Local.

Block statistics come from getblockstats, one call per block for the last
ten, cached by height so only the new tip is re-fetched. The live tabs poll
only while visible rather than adding a third unconditional 5s timer.

Also removed the hardcoded "archipelago123" from copyRPCInfo. That string
was never the node's actual RPC password — the real one is a
manifest-declared generated secret rendered into this app's nginx upstream
and deliberately never sent to the browser — so copying it could only ever
mislead. The Connect tab says where the password actually lives instead.

qrcode.js is vendored from docker/lnd-ui (same file, already CSP-clean) and
added to the Dockerfile's COPY set.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-02 18:31:52 -04:00
..
2026-04-30 16:37:54 -04:00