Skip to main content

Metroo Manager - Web Dashboard

Mole presenting dashboard

Metroo Manager is a lightweight web dashboard for managing and monitoring Muti Metroo mesh networks. It runs as a standalone binary that reverse-proxies a Muti Metroo agent's HTTP API and serves an embedded React SPA.

Requires Running Agent

Metroo Manager connects to a Muti Metroo agent's HTTP API. The agent must have http.enabled: true with http.dashboard: true and http.remote_api: true in its configuration.

Features

FeatureDescription
Topology MapInteractive visualization of all agents and their connections
DashboardReal-time stats for peers, streams, routes, and system info
Route ManagementView and manage CIDR and domain exit routes
Remote ShellBrowser-based terminal access to remote agents
File TransferUpload and download files to/from remote agents
Mesh TestTest connectivity between all agents in the mesh
Sleep/WakeTrigger mesh-wide sleep and wake commands

Download

Quick Start

# Download (example: macOS Apple Silicon)
curl -L -o metroo-manager https://download.mutimetroo.com/darwin-arm64/metroo-manager
chmod +x metroo-manager

# Launch (connects to local agent on port 8080)
./metroo-manager

# Open in browser
open http://localhost:3000

The dashboard opens automatically at http://localhost:3000 and connects to the Muti Metroo agent's HTTP API at http://127.0.0.1:8080.

CLI Flags

FlagDefaultDescription
-addr:3000Address for the web UI to listen on
-agenthttp://127.0.0.1:8080Muti Metroo agent HTTP API URL
-agent-tokenBearer token for agent API authentication
-versionPrint version and exit

The agent token can also be set via the MUTI_METROO_TOKEN environment variable. The -agent-token flag takes precedence over the environment variable.

Examples

# Connect to a remote agent
./metroo-manager -agent http://192.168.1.10:8080

# Use a custom port for the web UI
./metroo-manager -addr :9090

# Connect to a token-protected agent
./metroo-manager -agent http://192.168.1.10:8080 -agent-token mysecrettoken

# Connect to an HTTPS agent
./metroo-manager -agent https://192.168.1.10:8080

# Bind to all interfaces (accessible from other machines)
./metroo-manager -addr 0.0.0.0:3000 -agent http://10.0.0.5:8080

Agent Configuration Requirements

The Muti Metroo agent must have its HTTP API enabled with dashboard and remote API endpoints active:

http:
enabled: true
address: ":8080"
dashboard: true # Required for /api/* endpoints
remote_api: true # Required for /agents/* endpoints

If the agent uses bearer token authentication, pass the token via the -agent-token flag or the MUTI_METROO_TOKEN environment variable:

# Agent config with token protection
http:
enabled: true
address: ":8080"
token_hash: "$2a$10$..." # Generated with: muti-metroo hash
dashboard: true
remote_api: true
# Connect with token (flag)
./metroo-manager -agent http://192.168.1.10:8080 -agent-token yourtoken

# Or via environment variable
export MUTI_METROO_TOKEN=yourtoken
./metroo-manager -agent http://192.168.1.10:8080

Architecture

Metroo Manager acts as a reverse proxy between the browser and a Muti Metroo agent:

  • Browser: Loads the React SPA from the Manager and makes API calls
  • Manager: Serves the embedded SPA and proxies API requests to the agent
  • Agent: Handles mesh operations and returns status/management data

The Manager binary embeds the entire React frontend at build time, so no separate web server or Node.js runtime is needed.

Feature Details

Topology Map

The topology map provides a visual overview of all agents in the mesh and their peer connections. Agents are displayed with their display names, agent IDs, and connection status. Click on any agent to view detailed information.

Dashboard

The dashboard shows real-time statistics for the connected agent, including:

  • Connected peers and their connection status
  • Active streams and buffer usage
  • Route table (CIDR and domain routes)
  • System information (OS, architecture, uptime)
  • Forward route endpoints and listeners

Route Management

View all CIDR and domain routes advertised across the mesh. The route table shows the origin agent, hop count, and metric for each route.

Remote Shell

Access a browser-based terminal on any reachable agent in the mesh. The shell supports both streaming mode (for simple commands) and interactive mode (for programs like htop or vim). The target agent must have shell access enabled in its configuration.

File Transfer

Upload and download files to/from any reachable agent through the browser. Supports individual files and directory transfers. The target agent must have file transfer enabled in its configuration.

Mesh Test

Run connectivity tests between all agents in the mesh. The test sends probe messages between every pair of agents and reports success/failure with latency measurements.

Sleep/Wake Control

Trigger mesh-wide sleep or wake commands from the dashboard. When sleep is activated, agents enter a low-power polling mode and disconnect from peers. Wake restores normal operation.