Control Board
Desktop monitoring for home labs: Proxmox hosts and guests, Kubernetes, service checks, certificates and alerts in a single window. For Windows and Linux.
Get started on Windows
Requirements
- Windows 10 or 11 (64-bit). For Linux, see Get started on Linux.
- A Proxmox VE host or cluster that your PC can reach
- Optional: a Kubernetes cluster, and websites or services to monitor
Install
- Download the latest installer from the releases page you were given.
- Run the installer. It installs for your user account only and does not need administrator rights. Because the installer is not yet code-signed, Windows SmartScreen reports an unknown publisher: choose More info > Run anyway.
- Control Board opens on the Nothing is set up yet screen.
Set it up
Add everything from Sources > Add a source. Sources are saved without a connection test, so you can add one that is offline at the moment; each source’s page then shows whether it is responding. Secrets are stored in Windows Credential Manager, never in a file.
Proxmox (start here). Enter the address of any host in your cluster. To add more than one, separate them with commas; Control Board tries the next address when one is down. By default the app logs in over SSH, with a key you already use or one it creates for you. That single login reads the whole cluster and runs the host checks. Hosts and guests appear within seconds.
A read-only login. When adding Proxmox, choose API token (read-only) under Log in with; the form shows the three commands that create one. On any node, as root:
pveum user add board@pve --comment "Control Board"
pveum aclmod / -user board@pve -role PVEAuditor
pveum user token add board@pve ro --privsep 0
The PVEAuditor role can read everything and change nothing. The last command
displays the secret once: enter the token ID board@pve!ro and the secret in
the app. A token cannot reach the hosts themselves, so add Host access
(under Advanced when adding a source) for the host checks.
Host access (SSH), optional with a token, lets Control Board read failed
services, ZFS pools, pending updates and backups on each host. If the app
creates its own key, it shows the line to add to /root/.ssh/authorized_keys
(on a Proxmox cluster that file is shared, so this is done once per cluster).
Replace <your LAN> in that line with your network, for example
192.168.1.0/24. The line restricts the key to your LAN and allows no
forwarding and no terminal. The host terminal (off until you turn it on in
Settings > Controls) cannot open through that line, so on any host where
you want it, remove no-pty from the line.
Kubernetes, optional: browse to an existing kubeconfig file, or paste one. A read-only kubeconfig is sufficient (list and watch, pod logs, no Secrets).
Web addresses and services, optional: a web address, or host:port for
any other service, checked every 20 seconds. Under Advanced, Page must
contain makes a web check look for text that only your application returns.
Some proxies answer every address with an empty page, even for a site that
does not exist.
Settings contains the theme, font and text size, the layout, the network map’s colors, your own actions and host checks, phone and other alerts, Controls (each off until you turn it on) and the audit log.
Guest roles come from Proxmox tags you choose. The settings file
(%APPDATA%\com.parakalix.controlboard\board.yaml, with comments) defines
which alert a stopped guest raises for each role, and holds any options the
app does not yet show.
Updates
When a new version is available, it appears in the title bar (for example,
v0.11.57 → v0.11.58). Click it, then Install & restart. Every update is
signed, and the app refuses any update whose signature does not match.
Uninstall
Open Settings > Apps > Control Board in Windows. Your settings and history
remain in %APPDATA%\com.parakalix.controlboard, and your secrets remain in
Credential Manager (Windows Credentials) under names ending in
.Control Board. To remove everything, delete both.
Reporting a bug
Email support@parakalix.net, or open an issue on the releases page you were given. Describe what you did, what you expected and what happened; a screenshot helps. Leave out passwords, tokens, addresses and any other private details, especially in issues, which are public.