MarketDeck docs

Web UI plugin

The self-hosted browser UI — same data as the GNOME plugin, accessible from any device on the LAN.

marketdeck-webui is a self-hosted HTTP server that renders the same panels the GNOME plugin shows. It's a presentation-only layer: every read shells out to the CLI, every write submits the same form to the same code path. No database access, no exchange calls of its own.

The plugin is a separate repo (https://git.marketdeck.io/marketdeck/marketdeck-webui) and is installed through the CLI's plugin loader.

Install#

marketdeck plugin install git:https://git.marketdeck.io/marketdeck/marketdeck-webui.git
marketdeck webui start

The plugin registers marketdeck webui <subcommand> for the server lifecycle:

SubcommandWhat it does
start [--port N] [--bind HOST]Boot the server. Default port is 8911, default bind is 127.0.0.1.
stopSend SIGTERM and wait.
statusPid + uptime + bound address.
logs [--tail N] [--follow]Tail the web-ui process log.

Development smoke#

After editing the plugin, reinstall it so the CLI-served copy is current, restart the WebUI process, then run the smoke:

marketdeck plugin update marketdeck-webui
marketdeck webui stop
marketdeck webui start --background
node test/smoke-webui.js

The smoke checks public pages, exported LB.* helpers, key API endpoints, and that the installed plugin copy matches the checkout.

What it serves#

  • /dashboard — live mid prices, open-position P&L.
  • /positions — open + closed positions per wallet.
  • /wallets — catalog read; create/edit go through the same CLI commands.
  • /agents — agent list, history, and one-click run.
  • /backtest — backtester runner + result browser.
  • /strategies — strategy CRUD.
  • /scheduler — the agent scheduler view.
  • /notifications — the persistent notification log.
  • /diagnostics — CLI schema, safety preflight, execution reconcile, profile, doctor bundle, secret diagnostics, metadata export, rotation plan download, and plugin audit workspace.
  • /snapshot/<coin> — the raw snapshot payload.
  • /chart/<coin> — candle chart with overlays.

Secret diagnostics#

The WebUI does not read the keyring directly. Diagnostics and wallet credential status come from marketdeck secrets ... --format json.

  • /diagnostics shows secrets doctor, runs metadata tests, exports metadata through secrets export-metadata, and downloads rotation plans from secrets rotate-plan.
  • /wallets shows per-real-wallet credential status, displays the safe marketdeck wallets set-secret <wallet> repair command when a secret is missing, and can unset one wallet secret after a confirmation dialog.

Exports are metadata-only: ids, scopes, backend status, wallet names, and findings. Secret values never appear in the browser payload.

Auth#

The server binds to 127.0.0.1 by default, so it's only reachable from the local machine. To expose it to a LAN, bind to a routable interface and front it with a reverse proxy (Caddy, nginx, Traefik) that adds your auth layer of choice. The plugin itself does not ship password-based auth.