Node CLI
The FrameWorks CLI provides commands for monitoring status, viewing logs, and managing the lifecycle of your edge services.
Status
Section titled “Status”frameworks edge status --dir /opt/frameworks-edgeShows:
- Container status in Docker mode, or systemd/launchd status in native mode
- HTTPS health check against your configured domain
# All services, follow modeframeworks edge logs --follow --dir /opt/frameworks-edge
# Specific container (positional argument)frameworks edge logs helmsman --tail 100 --dir /opt/frameworks-edge
# Multiple optionsframeworks edge logs --follow --tail 50 --dir /opt/frameworks-edgeService names: mistserver, helmsman, caddy (the proxy service)
Updates
Section titled “Updates”Updating the CLI
Section titled “Updating the CLI”# Check for updatesframeworks update --check
# Update to the latest versionframeworks updateUpdating Edge Services
Section titled “Updating Edge Services”Update/restart the deployed edge services:
frameworks edge update --dir /opt/frameworks-edgeIn Docker mode this:
- Pulls new images from the registry
- Recreates containers with new images
- Preserves configuration and data
In native mode, edge update restarts the native services. Release-target convergence for native components is driven by the control plane, not by pulling Docker images.
Check current version:
frameworks versionCertificates
Section titled “Certificates”Check TLS status:
frameworks edge cert --dir /opt/frameworks-edgeShows certificate expiration and issuer. In token-provisioned edge deployments, Foghorn can push renewed TLS material through ConfigSeed and Helmsman reloads Caddy. If Caddy needs to reload local certificate state:
# Reload Caddy to pick up new certificatesframeworks edge cert --reload --dir /opt/frameworks-edgeOperational Mode
Section titled “Operational Mode”Use node mode when you want Foghorn to stop sending new traffic without fully stopping the services. This command talks to Helmsman’s local HTTP API, so it works for native deployments and Docker deployments where you have made that API reachable from the host.
# Show current modeframeworks edge mode
# Stop new sessions and let existing work drainframeworks edge mode draining --reason maintenance
# Return to normal routingframeworks edge mode normalMode changes are requested through Helmsman and validated by Foghorn, which pushes the authoritative mode back through ConfigSeed.
Restarting Services
Section titled “Restarting Services”For Docker deployments:
cd /opt/frameworks-edge
# Restart everythingdocker compose -f docker-compose.edge.yml restart
# Restart specific containerdocker compose -f docker-compose.edge.yml restart helmsmanStopping the Node
Section titled “Stopping the Node”For Docker deployments, stop the containers:
docker compose -f docker-compose.edge.yml stopBring down the stack:
docker compose -f docker-compose.edge.yml downStart again:
docker compose -f docker-compose.edge.yml up -dDiagnostics
Section titled “Diagnostics”Full health check:
frameworks edge doctor --dir /opt/frameworks-edgeRuns:
- Host checks (ports, DNS, sysctls)
- Service status
- HTTPS reachability
- Remediation hints
Network diagnostics:
# Check connectivity to control planeframeworks context check
# Inspect Helmsman's gRPC connection to Foghorn (any dial errors land here)frameworks edge logs helmsman --tail 100Resource Usage
Section titled “Resource Usage”For Docker deployments, check what your node is using:
docker stats mistserver helmsman edge-proxyMistServer metrics are available on the MistServer control interface. In the default Docker template that port is not published on the host; expose it intentionally or query it from a shell that has access to the container network:
curl http://localhost:4242/api/statsHelmsman exposes Prometheus metrics when its local HTTP API is reachable:
curl http://localhost:18007/metricsConfiguration Changes
Section titled “Configuration Changes”Most config lives in .edge.env. After editing a Docker deployment:
cd /opt/frameworks-edge
# Apply changes by restartingdocker compose -f docker-compose.edge.yml restartChanges that require restart:
- Capability toggles
- Foghorn endpoints / enrollment token
- Storage configuration
Changes that take effect immediately:
- Most MistServer settings via its API
Backup and Recovery
Section titled “Backup and Recovery”What to backup:
.edge.env- Your configuration- MistServer recordings (if enabled)
- Any custom Caddyfile modifications
Recovery:
- Install Docker on the new host when recovering a Docker deployment
- Run
frameworks edge preflight - Run
frameworks edge init --dir .to generate compose/Caddyfile - Copy your saved
.edge.envinto the directory - Start with
frameworks edge enroll --dir .
Common Tasks
Section titled “Common Tasks”Change node capacity
Section titled “Change node capacity”Edit .edge.env:
HELMSMAN_MAX_TRANSCODES=10Then restart Helmsman:
docker compose -f docker-compose.edge.yml restart helmsmanDisable ingest temporarily
Section titled “Disable ingest temporarily”# Edit .edge.envHELMSMAN_CAP_INGEST=false
# Restartdocker compose -f docker-compose.edge.yml restart helmsmanFoghorn will stop routing new ingest to this node.
Check active streams
Section titled “Check active streams”curl http://localhost:4242/api/streamsOr via the dashboard under Nodes → [your node].
Clear recordings storage
Section titled “Clear recordings storage”# Check usagedu -sh /var/lib/mistserver/recordings
# Remove old recordings (careful!)find /var/lib/mistserver/recordings -mtime +30 -deleteAutomation
Section titled “Automation”For multiple nodes, consider:
- Ansible playbooks using the CLI commands
- Docker Swarm or Kubernetes (bring your own manifests)
- Custom scripts wrapping
frameworks edgecommands
Example health check script:
#!/bin/bashcd /opt/frameworks-edgeif ! docker compose -f docker-compose.edge.yml ps | grep -q "Up"; then echo "Containers not running, attempting restart" docker compose -f docker-compose.edge.yml up -dfi