Should I run Headlamp as a desktop app or deploy it in-cluster?
Updated
Run Headlamp as a desktop app if you want to manage clusters locally without deploying anything into them, or if you manage several unrelated clusters. Deploy it in-cluster if you want a shared web UI that multiple users reach through an ingress server. The two are not mutually exclusive — Headlamp can be run as a web app, a desktop app, or both.
Desktop app: when local access fits better
Headlamp's desktop build is aimed at users who don't want to deploy it in a cluster, or who want to manage unrelated clusters locally. It runs on Windows, Linux, and macOS.
Install options per platform:
| Platform | Install method | Command |
|---|---|---|
| Windows | WinGet | winget install headlamp |
| Windows | Chocolatey | choco install headlamp |
| Linux | Flatpak (requires the Flathub repository) | flatpak install flathub io.kinvolk.Headlamp |
| macOS | Homebrew | brew install --cask headlamp |
Each platform also offers a direct binary download. Headlamp notes that Windows and macOS may show warnings when running unsigned apps.
Choose this route when you want a single operator working from a local machine, when you don't have permission to install workloads into the clusters you use, or when the clusters you manage aren't related to each other.
In-cluster: when a shared web UI fits better
A common use case for any Kubernetes web UI is to deploy it in-cluster and set up an ingress server so it's available to users. That's the pattern to pick when several people need the same UI and you want to control access centrally.
Install paths:
- Helm
helm repo add headlamp https://kubernetes-sigs.github.io/headlamp/ helm install my-headlamp headlamp/headlamp --namespace kube-system - kubectl apply with a configuration file for a deployment and service:
Review the file and change what you need before applying.kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/headlamp/main/kubernetes-headlamp.yaml - Minikube addon
minikube addons enable headlamp minikube service headlamp -n headlamp - Docker Desktop extension — Headlamp ships as a Docker Desktop extension.
- Glasskube
glasskube install headlamp
How the two compare
| Dimension | Desktop app | In-cluster |
|---|---|---|
| Where it runs | On your local machine | Inside the cluster |
| Best for | Users who don't want to deploy in-cluster; managing unrelated clusters locally | Serving a web UI to multiple users via ingress |
| Access model | Local to the operator | Shared, reached through an ingress server |
| Install effort | Package manager or binary per platform | Helm, kubectl apply, Minikube addon, Docker Desktop extension, or Glasskube |
What stays the same either way
Headlamp adapts to a user's cluster permissions through RBAC-based controls, so what each user sees follows their cluster permissions rather than the deployment mode. It also supports adaptable UI and branding, letting you create custom experiences with minimal effort. Headlamp is an official Kubernetes sub-project and part of SIG UI, and it works with your favorite Kubernetes flavor.
If you're unsure, start with the desktop app to explore a cluster without changing it, then move to an in-cluster deployment once you need to share the UI with a team.