Open source · MIT · v0.17.0

Homelab mission control.

One Go binary, a live web UI over the Linux hosts you can reach with SSH, Proxmox, Kubernetes, Flux, hardware, storage, alerts and service status.

dash overview: KPIs, live topology from the Proxmox host through the VMs to the cluster's namespaces, and the attention list

The built-in demo mode: every name and address is made up. Click around it in your browser →

What it is

One screen for the whole lab.

dash is for people who run their own infrastructure: a few Linux boxes, a Proxmox host, a Kubernetes cluster managed with Flux, the storage and monitoring around them. It reads all of it and shows the state in one place, worst problems first.

One live screen, host to pod

The Overview draws the topology from the Proxmox host through its VMs to every namespace, and lists what needs attention, worst first.

Plugins that switch on when configured

Each integration turns on when its settings are complete. Nothing about a particular lab is compiled in.

Live over one SSE stream

The data is live, and only what changed goes out, over a single server-sent event stream.

Installable as an app

Over HTTPS a browser can install dash as an app, on the desktop and on a phone's home screen.

A tour

Every layer of the lab, one click apart.

A command palette (Ctrl K) jumps to any page, VM, node, workload or pod. Select a screenshot to open it at full size.

Virtual machines page listing each VM with its status, resources and Kubernetes node
Virtual machinesProxmox VMs with their Kubernetes node, config, snapshots and charts, and a link to each console.
Hardware page with power, temperatures, fans, PSUs, ZFS pools and disk health
HardwareIPMI power, temperatures, fans and PSUs, ZFS pools and per-bay SMART health.
Cluster page listing pods with their namespace, phase and health
ClusterNodes, workloads, pods, events, namespaces and certificates.
Pod detail sheet for a crash-looping pod, with Overview, Logs, Metrics, Events and Links tabs
Pod detailContainers, owner, conditions, logs, metrics and events in a side sheet.
GitOps page listing Flux sources, Kustomizations and HelmReleases
GitOpsEvery Flux source, Kustomization and HelmRelease with its revision and signature verification.
Storage page with panels for volumes, databases and object storage
StoragePVC fill and growth with days-to-full, Proxmox storage, Postgres backups and object-store capacity.
Alerts page with firing alerts and silences
Alerts and silencesFiring Alertmanager alerts, and silences that expire.
Service status page with endpoint health grouped, critical groups first
Service statusGatus endpoint health, grouped, critical groups first.
Apps page: a searchable launcher of links grouped by platform, apps, tenants and infrastructure
AppsA launcher for your infrastructure, and the apps behind your HTTP routes.

Any Linux host

Add a machine with one SSH connection.

Give dash an address and a user. It signs in with its own key, installs nothing, and shows the machine's hardware, what runs on it and live charts within seconds. No agent, no exporter, no monitoring stack.

From nothing to live

  1. Name the hostAn address and a user, in Settings. A dedicated unprivileged user is all dash needs.
  2. Check its fingerprintdash shows the host key it was offered and connects only after you trust it.
  3. Paste one lineAdd dash's public key to that user's authorized_keys. dash never holds a password.
  4. Watch it appearCPU, memory, network and disk charts, temperatures and fans, file systems, disks and ZFS pools, containers and systemd services.
Hosts page: a card for each machine with its CPU, memory, load and temperature, and the selected host's live charts, file systems, containers and services
HostsA card for each machine, and everything dash discovered on the one you select.

Integrations

Plugins for what you already run.

Every plugin turns on when its settings are complete. Leave one unconfigured and its pages stay out of the way; without a cluster, dash still serves the rest.

  • Proxmox VEVMs, snapshots, charts, consoles
  • HardwareIPMI, SMART, ZFS
  • Linux hosts over SSHHardware, containers, services, live charts
  • KubernetesNodes, workloads, pods, logs
  • FluxSources, Kustomizations, HelmReleases
  • CloudNativePGPostgres clusters and backup age
  • RustFSObject-store buckets and capacity
  • AlertmanagerFiring alerts and silences
  • GatusEndpoint health, grouped
  • VictoriaLogsPod logs and a live tail
  • Prometheus / VictoriaMetricsThe series behind the charts
  • Grafana · HeadlampDeep links from what you are viewing
  • LauncherLinks to your infrastructure

What each plugin shows, needs and may do: the plugin docs.

Built for agents too

Let an AI read your lab. You keep the keys.

dash serves a read-only Model Context Protocol server, so an agent can look at the overview, objects, metric series, logs and context bundles with your permissions. It is off until an administrator switches it on.

Copy context for AI

One button on a pod, a VM, an attention item or an alert copies that object's context as Markdown, ready to paste into any chat assistant.

Personal access tokens and OAuth

An agent presents a token scoped to MCP, or signs in through dash with OAuth. Scopes decide what it sees, and a token for MCP is refused by the REST API.

Agent actions wait for you

  1. An agent asks to actWith an administrator's token, it can ask for a restart, a reconcile or a silence, once you have enabled that plugin's actions.
  2. Nothing runs yetBy default dash turns the call into an approval request that only the token's owner can decide.
  3. You approve on the approval pageA push notification can take you to it. The action runs once, and the decision is audited.

Secure by default

It reads a lot and writes very little.

dash writes in three places only, and each is off until you turn it on.

  • Three ways to sign inLocal, OIDC, or behind an identity proxy.
  • Viewer and admin rolesViewers read. Only administrators run actions or change settings.
  • CSRF checks and a strict CSPWrites need a matching Origin and a CSRF header, and scripts load only from dash itself.
  • A fail-closed audit logEvery action and settings change is hash-chained, and a change is refused if its record cannot be written.
  • Everything powerful is off by defaultRollout restarts, Flux reconciles, silences and the MCP server stay off until you enable them.
  • Hosts are read, never changedOne fixed, read-only script over SSH and pinned host keys. No agent, no password, no sudo.
  • Secrets stay secretStored encrypted, never shown back, and scrubbed from logs and error messages.

Read the security model →

Run it anywhere

One binary. Run it where you like.

dash is a single binary for Linux and macOS, the same binary in a container for linux/amd64 and linux/arm64 on GHCR, and a Helm chart at the same version.

A Linux server

One command installs the binary as a hardened systemd service and prints the link to set your password. No Docker needed.

Binary guide →

Docker or Compose

Run the container with a data volume, or start the Compose example with Prometheus and Alertmanager alongside it.

Docker guide →

Kubernetes with Helm

A Helm chart, with kustomize and RBAC modes covered, and a guardrail that holds the service account to what you enabled.

Kubernetes guide →

Behind oauth2-proxy

Let an identity proxy admit only the users you list, as a sidecar in the cluster.

All deploy guides →

Install on a Linux server

curl -fsSL https://dash.techdufus.com/install.sh | sudo sh

Try it on demo data

docker run -p 8080:8080 -e DASH_DEMO=true -e DASH_SERVER_LISTEN=0.0.0.0:8080 ghcr.io/techdufus/dash:0.17.0

Install on Kubernetes

helm install dash oci://ghcr.io/techdufus/charts/dash --version 0.17.0

See it, then run it.

dash is MIT licensed and developed in the open. Click around the demo, star the repository, read the docs, or open an issue.