Commit Graph
16 Commits
Author SHA1 Message Date
archipelagoandClaude Opus 5 2e68384234 fix(lnd-ui,bitcoin-ui): canonical app icon, header stacking, square QR, button parity
Five review fixes across both node UIs.

1. LND now uses the app-store icon. It was shipping its own 182KB lnd.svg
   while the app store, My Apps and the signed catalog all render
   neode-ui/public/assets/img/app-icons/lnd.png (catalog.json points at
   /assets/img/app-icons/lnd.png). Same file is now vendored into the
   image, so the app header, the launcher and the store agree. That icon is
   a full-bleed square with an opaque white background rather than a
   transparent glyph, so it fills the frame and is clipped to the inner
   radius — exactly how bitcoin-ui frames its own icon — instead of being
   inset with padding on a dark plate.

2. Header no longer squishes at tablet widths. Both headers had a single
   768px breakpoint, so between 768 and 1024 the title and description got
   crushed against the controls on the right (four status cards on
   bitcoin-ui) and overlapped. Both now use three breakpoints: fully
   stacked and centred below 768, logo + title on one row with the controls
   wrapped underneath below 1024, single row above. The app name and
   description are centred on mobile.

3. QR codes stay square. .conn-layout is a flex row on desktop and flex
   items stretch by default, so the white QR plate was being pulled to the
   height of the fields column and the square QR sat letterboxed in it. The
   plate is now a fixed square inside a black glass panel that absorbs the
   extra height, so the panel matches the fields and the QR stays square.

4. Buttons read as one family. The Settings button and both modal dismiss
   buttons used the flat .glass-button while every other button on the page
   used .info-card-button; they now all use the latter, via new .compact
   (inline) and .icon-only (square) variants so the shared style works at
   button size rather than only as a full-width card.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-02 19:00:31 -04:00
archipelagoandClaude Opus 5 341bff4b44 feat(lnd-ui): rebuild the LND app UI with UmbrelOS feature parity
The LND UI was a single scrolling page with a flat gradient instead of a
background, a permanently-disabled "Wallet" card, and four tabs buried
inside a Settings modal. Everything a node runner actually wants to see —
routing revenue, peers, liquidity, activity — was absent.

Rebuilt against the feature set of umbrelOS's Lightning Node and Bitcoin
Node apps (getumbrel/umbrel-lightning, getumbrel/umbrel-bitcoin), rendered
in Archipelago's own idiom rather than copying their visual design:

- Real background. bg-web5.jpg was already being COPYd into the image by
  the Dockerfile and simply never referenced; it now drives the same
  perspective-layer + 0.8 overlay treatment bitcoin-ui uses. Paths stay
  relative because the app is served at / on :18083 but under /app/lnd/
  when proxied by the host nginx, where absolute /assets 404s.
- Glass cards with the masked gradient border, matching bitcoin-ui exactly.
- Six top-level tabs (Overview / Channels / Activity / Insights / Connect /
  Settings) replacing the one-page scroll — umbrelOS's Home/Insights/
  Settings dock, widened for Lightning. On mobile the bar becomes a fixed
  bottom dock with safe-area padding; on desktop it is a segmented control.
- Overview: total/lightning/on-chain balances, a Max Send vs Max Receive
  liquidity bar (Umbrel's framing), and peers/channels/capacity/routing
  stat tiles.
- Insights: routing revenue over 24h/7d/30d from /v1/fees, channel totals,
  network graph stats, and a sortable+filterable peers table with Umbrel's
  Tor/I2P/Local/Clearnet classification.
- Activity: merged Lightning payments, settled invoices and on-chain
  transactions on one timeline, filterable by rail.
- Connect: the existing lndconnect QR flow, plus a Node ID panel with the
  pubkey and advertised URI (umbrel's NodeIdModal).
- sats/BTC unit switch persisted to localStorage (Umbrel's SatsBtcSwitch).

Channel management deliberately links out to the existing Archipelago
channels view at /apps/lnd/channels rather than being reimplemented here;
this app only shows a read-only channel overview.

Sync progress tracks the synced_to_chain/synced_to_graph booleans rather
than inventing a block-based percentage, because LND exposes no IBD ratio.

All data comes through the existing authenticated GET proxy at
/proxy/lnd, so no backend, manifest or nginx change is required.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-02 18:19:34 -04:00
DorianandClaude Fable 5 5c2622f39a feat(lnd-ui): on-chain + Lightning balance cards in the summary strip
Fetched from /proxy/lnd/v1/balance/{blockchain,channels}; the cards stay
hidden when the endpoints are unavailable so older deployments are unaffected.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-14 03:39:56 +01:00
archipelagoandClaude Opus 4.8 1bce694ebb feat(ui): mobile mesh tabs, AIUI-style audio player, cloud grid + map fixes
UI (this session):
- Global audio player now scales the whole interface into the space above it
  on desktop (sidebar + main) and docks directly above the tab bar on mobile;
  it stays visible while navigating.
- Mesh mobile redesign: floating Chat / BTC / Dead Man / AI / Map tab strip
  with a single fixed, internally-scrolling pane (page no longer scrolls);
  tabs hide while a conversation is open; floating back button; collapsible
  Device panel (starts collapsed); keyboard-aware conversation sizing via
  VisualViewport so the chat sits just above the keyboard.
- Cloud file grid: uniform 4/3 card heights (folders + images match).
- Swipe left/right switches tabs on the Apps and Web5 screens.
- Map tool fills its pane (no bottom gap); fix skewed Share Location toggle
  on mobile (global min-height rule was deforming the switch).
- Trim redundant helper copy from the mesh AI tab.

Also bundles pre-existing in-progress work that was already in the tree:
mesh listener/session + wallet + container + bitcoin-status backend changes,
docker UI updates, and assorted other UI tweaks.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 09:52:26 -04:00
DorianandClaude Opus 4.6 b893fff23c fix: LND Connect — remove nginx cookie gate, rebuild LND UI with credentials
- Nginx cookie check removed for /lnd-connect-info — backend is
  localhost-only so no external access possible. Browsers (especially
  Brave) don't reliably send SameSite=Lax cookies from iframe fetches.
- LND UI source restored from archive with credentials: 'include'
- Discover.vue install banner removed (inline card progress only)
- Server.vue: Connectivity → Tor Status, using tor.list-services

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 17:02:17 +00:00
DorianandClaude Opus 4.6 302f22019d fix: BUG-33 CPU threshold, TASK-27 tab icons, TASK-36 iframe errors
- BUG-33: CPU load alert threshold increased from 2x to 4x core count
  (8→16 on 4-core machine) to reduce false alerts during container ops
- TASK-27: Launch buttons for new-tab apps now show external link icon
  (BTCPay, Grafana, PhotoPrism, Portainer, OnlyOffice, etc.)
- TASK-36: Iframe error screen now distinguishes between X-Frame-Options
  blocked vs container not reachable, with appropriate messaging

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 19:24:52 +00:00
DorianandClaude Opus 4.6 01f81a1912 fix: LND UI field overflow, Tor auto-detect, path fix
- Fix .onion address overflow: add min-width:0 to flex children
- Reduce field font size for long addresses
- Auto-select Local Network mode when Tor unavailable
- Fix Tor hidden service paths on Arch 1/3 (was /var/lib/tor/,
  backend reads /var/lib/archipelago/tor/)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 16:53:25 +00:00
DorianandClaude Opus 4.6 58459b0204 fix: LND UI auto-select local mode when Tor unavailable
When tor_onion is null in the connect info response, automatically
switch dropdown to "REST (Local Network)" and show a helpful message
instead of "Tor not configured for LND" error.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 16:29:26 +00:00
DorianandClaude Opus 4.6 2339946e6a fix: LND UI use protocol-aware fetch, default backend URL
- fetchConnectInfo: use window.location.protocol instead of hardcoded http://
- getBackendUrl: default to current origin when no ?backend= param
- Fixes mixed content errors on HTTPS Tailscale servers
- Also fixed: nginx needed reload on Tailscale servers, Arch 2 missing
  /lnd-connect-info nginx location

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 16:06:07 +00:00
DorianandClaude Opus 4.6 ec916892de fix: rewrite LND UI with inline CSS matching electrs-ui design
Replace Tailwind CDN dependency with all-inline CSS in <style> block,
matching the proven electrs-ui approach. Fixes broken styling on HTTPS
servers where CSP blocks external scripts.

Design system: glass-card, info-card, icon-box, stat-row, field-row,
conn-layout, qr-box, modal with tabs — all matching electrs-ui.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 15:46:11 +00:00
DorianandClaude Opus 4.6 1f0d51865d fix: LND UI CSS, QR codes, services tab, wallet creation, tx filtering
- LND UI: replace cdn.tailwindcss.com with local tailwind.css (CSP fix)
- LND UI: make asset paths relative for nginx proxy compatibility
- Web5 wallet: add QR code for on-chain receive addresses (qrcode npm)
- Web5 wallet: hide incoming transactions after 3 confirmations
- Apps: add "Services" tab to separate backend containers from user apps
- Home: null guard on packages.value to prevent TypeError on load
- First-boot: auto-create Bitcoin Knots wallet (no longer auto-created)
- AppSession: add mempool-electrs to port mapping

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 15:34:04 +00:00
Dorian 6035c93289 Enhance ISO build process and documentation for Archipelago
- Updated BUILD-GUIDE.md to clarify instructions for building the Archipelago Auto-Installer ISO, emphasizing the recommended method of building directly on the target server.
- Added auto-installation of missing dependencies (xorriso, podman) when running the build script with sudo.
- Enhanced the build-auto-installer-iso.sh script to capture container images from the live server, ensuring the ISO includes the same set of applications as the dev server.
- Revised deployment documentation to stress the importance of building the Rust backend on the Linux dev server and included new instructions for capturing system-level changes for ISO builds.
- Improved UI components and added new bundled applications (BTCPay Server, Mempool Explorer, Nostr Relay, Strfry Relay, Tailscale) to enhance user experience.
2026-02-14 16:44:20 +00:00
Dorian 47a56e2212 Enhance UI styling and components for Archipelago
- Updated the glass-card and glass-button styles for improved aesthetics and functionality, including gradient borders and hover effects.
- Introduced new info-card and info-card-button components with enhanced styling and interactive features.
- Refactored existing HTML structure to utilize new card components, improving consistency across the UI.
- Enhanced button interactions for better user experience during settings and logs access.
2026-02-03 21:49:30 +00:00
Dorian 2b01cab400 initial 2026-01-28 00:47:00 +00:00
Dorian 336704512b Update UI for Bitcoin and LND with enhanced connection details and styling
- Modified the startup script to reflect updated URLs for Lightning UI and REST API.
- Enhanced Bitcoin Core and LND UI with new styling and layout improvements, including background images and responsive design.
- Added connection status indicators and improved accessibility for RPC and gRPC information.
- Implemented new buttons for copying connection details and viewing logs, enhancing user interaction.
- Updated modal designs for settings and logs to improve usability and aesthetics.
2026-01-28 00:12:11 +00:00
Dorian 6a018e4953 Implement Bitcoin and LND UI in Docker setup and enhance startup script
- Added Docker services for Bitcoin Core UI and LND UI, providing web interfaces for both applications.
- Updated the startup script to improve image pulling process and service readiness checks with retries.
- Modified the app view to open the Bitcoin Core UI in a new tab instead of routing through the app.
- Removed the Bitcoin Core Vue component as it is no longer needed, streamlining the UI structure.
- Excluded backend services from the app listing to improve clarity in the Docker package scanner.
2026-01-27 23:57:29 +00:00