01 · Applications
Homelab Hub
Dashboard and app store for a home server
Overview
A dashboard, app store and control panel for a home server, built for the phone. It finds what the machine already runs, shows how it is doing, and installs, updates or rolls back apps without a terminal.
A single Go binary with the React app embedded: no database server and about 30 MB of RAM. It reads Docker, systemd, Caddy's live config and the hardware itself, so every app, port, logo and spec on screen is discovered rather than configured.
Screenshots






Architecture
- Docker · systemd · Caddy · /proc
- Go binary + SQLite
- React app over Tailscale
Discovery · app store · updates with rollback
Stack
- Go
- React
- TypeScript
- SQLite
- Docker
- Caddy
- Tailscale
In depth
Discovery
Containers, systemd services and the sites behind the reverse proxy appear as apps with their real names and logos, matched from the image, the unit or the page title. Listening ports are traced back to their owner through /proc, and each app is probed for health and response time.
App store with rollback
Each app is its own Compose project with generated, encrypted secrets and an HTTPS address added through Caddy's admin API, so the Caddyfile is never touched. A runtime importer converts community CasaOS catalogs, including multi-container apps, under strict safety rules. Updates back up settings and data first and restore the previous version automatically if the new one does not come up healthy.
Private by default
Tailscale is the front door: every request is checked against the local Tailscale daemon, with no password mode and no localhost bypass. The hub exposes a fixed set of actions rather than a shell, installed apps bind to localhost, and privileged settings need an explicit declaration and approval.
Self-hosted by design, so there is no public demo; screenshots have personal details masked.