Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Dashboard

Leptos WASM web dashboard for monitoring and managing pipelines.

Setup

cargo install trunk
rustup target add wasm32-unknown-unknown

Run

# Terminal 1: API server
fungi server

# Terminal 2: dashboard
cd crates/fungi-dashboard
trunk serve --port 8082

Open http://localhost:8082.

Login

If FUNGI_AUTH_ENABLED=true, log in with the bootstrap admin credentials. The JWT is stored in localStorage and attached to every API call.

Pages

PageShows
DashboardStatus, version, uptime, JM/TM counts, recent jobs
PipelinesAll pipelines with status, throughput, errors
SQL IDEInteractive query editor
SettingsServer info, API keys, tenants

API Endpoints (consumed)

EndpointPurpose
GET /healthStatus, version, uptime, cluster info
GET /api/jobsList jobs
POST /api/sqlRun SQL
POST /api/auth/loginLogin

Trunk Proxy

crates/fungi-dashboard/Trunk.toml forwards /api/* and /health to the backend (default localhost:8080).

[[proxy]]
backend = "http://localhost:8080/api"
[[proxy]]
backend = "http://localhost:8080/health"

For remote clusters:

[[proxy]]
backend = "http://101.200.74.232:30051/api"

Production Build

cd crates/fungi-dashboard
trunk build --release
# Static files in dist/ — serve via nginx, Axum, or any static server

Tech Stack

ComponentPurpose
Leptos 0.6 (CSR)Reactive Rust UI
TrunkWASM bundler / dev server
Tailwind CSSStyling
reqwasmHTTP client

Customization

  • API base — edit Trunk.toml [[proxy]] blocks
  • Theme — edit index.html Tailwind config / classes
  • Pages — src/pages/, components in src/components/

Troubleshooting

SymptomFix
Cannot reach servercurl http://localhost:8080/health then check Trunk.toml
401 on every requestToken expired — log out and back in
Dashboard emptyServer has no jobs/pipelines yet — run fungi pipeline run