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:
| Subcommand | What it does |
|---|---|
start [--port N] [--bind HOST] | Boot the server. Default port is 8911, default bind is 127.0.0.1. |
stop | Send SIGTERM and wait. |
status | Pid + 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.
/diagnosticsshowssecrets doctor, runs metadata tests, exports metadata throughsecrets export-metadata, and downloads rotation plans fromsecrets rotate-plan./walletsshows per-real-wallet credential status, displays the safemarketdeck 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.