Provision VMs and microVMs, automate ZFS snapshots and replication, and run a cluster from the CLI or web UI — on hardware you own.
Each server manages its own VMs, snapshots and replication. Add Control Center when you need a shared API and web UI across hosts — the servers keep running without it.
Control Center is off, so the shared web UI and API go with it. Every host still runs its own VMs, snapshots and replication, your terminal still reaches each one over SSH, and the mesh keeps routing between them.
Fleet
Workloads
Operations
Totals across the fleet — hosts, allocated vCPU, memory, pool capacity and snapshot space — over tables listing every host, VM, microVM and backup. A problems tab collects everything currently wrong.
| Host | CPU | RAM | Power | rpool | VMs | Uptime |
|---|---|---|---|---|---|---|
| hoster-lap-01 | 3.4% | 61.2% | 43.0 W | 28.9% | 5 / 5 | 18d 17h |
| hoster0103 | 3.4% | 36.2% | 6.4 W | 55.8% | 2 / 3 | 55d 1h |
| hoster0104 | 3.2% | 25.8% | 7.6 W | 21.0% | 1 / 1 | 118d 3h |
| hoster0105 | 7.2% | 46.0% | 12.1 W | 48.7% | 3 / 3 | 12d 15h |
| hoster0106 | 6.7% | 31.8% | 4.4 W | 31.1% | 2 / 3 | 131d 14h |
Every host in one list with its state, alert count and load average. Opening one gives you the whole machine: configuration, live CPU, memory and power draw, ZFS pool usage, and every systemd unit with start, stop, restart and logs.
The VM list carries the guest operating system, run state and how many remote replicas exist. A machine’s own page adds its parent host, vCPU topology, memory, network, disk and dataset — plus snapshots, monitoring and a console.
Snapshots arrive on a schedule and are kept by retention class. Any row can be cloned into a new machine or rolled back in place, and the page totals exactly how much space the history is costing.
| # | Snapshot name | Date created | Type | Size | Actions |
|---|---|---|---|---|---|
| 1 | hourly_20260803_100010.625877 | 2026-08-03 10:00:10 | hourly | 2M | CloneRollbackDelete |
| 2 | hourly_20260803_090010.623936 | 2026-08-03 09:00:10 | hourly | 4M | CloneRollbackDelete |
| 3 | hourly_20260803_080010.653798 | 2026-08-03 08:00:10 | hourly | 4M | CloneRollbackDelete |
| 11 | daily_20260803_000011.197775 | 2026-08-03 00:00:11 | daily | 324K | CloneRollbackDelete |
| 13 | hourly_20260802_230010.590129 | 2026-08-02 23:00:10 | hourly | 4M | CloneRollbackDelete |
Per host, a scheduler registers snapshot, replication, disaster-recovery and template jobs. Defaults can be generated in one click, every job takes ordinary cron syntax, and upcoming runs are listed with the time remaining.
| Snapshot schedule | Cron | Tag | Keep | Enabled |
|---|---|---|---|---|
| Frequent default | */15 * * * * | snap_freq | 15 | Yes |
| Hourly default | @hourly | snap_hourly | 24 | Yes |
| Daily default | @daily | snap_daily | 7 | Yes |
| Weekly default | @weekly | snap_weekly | 4 | Yes |
| Monthly default | @monthly | snap_monthly | 12 | Yes |
| Yearly default | @yearly | snap_yearly | 2 | Yes |
| Job | Type | Cron | Next run | Targets |
|---|---|---|---|---|
| replicate_vaultwarden-prod | Replication | 13 * * * * | in 2m | hoster0105 |
| template-replication-hourly | VM Remote Sync | 43 * * * * | in 32m | 85 MB/s limit |
| microvm-template-local-sync-hourly | MicroVM Local Sync | 23 * * * * | in 12m | — |
Cluster health at a glance: whether there is quorum, which host holds leadership, and how many members are online. The member table shows each node’s database size, Raft term and version, and leadership can be handed to a follower without restarting anything.
| Member | Status | DB size | Raft | Version |
|---|---|---|---|---|
| hoster0103 Leader | Online | 888 KB | term 12 | v9.4.5 |
| hoster0104 | Online | 888 KB | term 12 | v9.4.5 |
| hoster0105 | Online | 888 KB | term 12 | v9.4.5 |
| hoster0106 | Online | 888 KB | term 12 | v9.4.5 |
| hoster-lap-01 | Online | 888 KB | term 12 | v9.4.5 |
Every host ships CPU, memory, disk, filesystem, network, systemd, time-sync and SMART metrics, grouped and plotted over any window from thirty minutes to a year. Nothing to wire up: Prometheus and the exporters are part of the install.
VMs and microVMs have the same monitoring pages, scoped to the machine instead of the host.
Point a domain at a VM or microVM by its short name and the proxy configuration is generated for you. Certificates are automated through your DNS provider, and a domain can apply across every host or be pinned to selected proxy nodes.
| Domain | State | Routes | Targets | Scope |
|---|---|---|---|---|
| git.example.com | Enabled | 1 route | 1 target | All hosts |
| photos.example.com | Enabled | 1 route | 1 target | All hosts |
| cloud.example.com | Enabled | 1 route | 1 target | All hosts |
| vault.example.com | Enabled | 1 route | 1 target | All hosts |
Every state-changing action, login and denied authorisation attempt, newest first — with the user, the resource path, the response status and the source address. Filter by user, action or group, or show only denied attempts.
| Time | User | Action | Resource | Status |
|---|---|---|---|---|
| 03/08 17:55:23 | admin | microvm:manage | Default / hoster0105 / dr-manager-lab | 200 |
| 03/08 17:51:07 | admin | auth.login | /auth/v1/cookie | 200 |
| 03/08 11:04:04 | admin | host:manage | Default / hoster-lap-01 | 200 |
| 03/08 11:01:47 | admin | snapshot:read | Default / hoster0106 | 200 |
| 31/07 13:44:57 | admin | vm:manage | Default / hoster-lap-01 / elite-olive-wolf-001 | 200 |
The operating model is a function of how many hosts you run. Nothing has to be decided up front — a single host grows into a cluster without a reinstall.
In every deployment: VM and microVM management, automatic IP provisioning, ZFS snapshots, power tracking, and monitoring with autodiscovery. Each step only adds — nothing is reinstalled.
| What changes | Single server | Multi-server | Cluster |
|---|---|---|---|
| Management interface | CLI | Web UI + API | Web UI + API |
| Replication | Operator-initiated | Operator-initiated | Scheduled, with retention |
| Networking | One host subnet | Independent per-host subnets | WireGuard mesh across hosts |
| Storage | ZFS on the host | ZFS per host | LeilFS distributed, metadata master failover |
| DNS | Per-host resolver settings | Per-host resolver settings | Cluster-wide, updated automatically |
Pre-built binaries are free to self-host at any scale. Production support, a hosted Control Center, source access, and custom development are commercial agreements.
Grab the pre-built binaries and run Hoster Stack on your own hardware.
Run Hoster Stack in production with our team behind it.
Fork Hoster Stack into your own product while we ship features alongside you.
Business Source License. Commercial agreements cover either a supported deployment or source access with custom engineering. Your infrastructure stays under your control, with support from the team maintaining the platform.
Three steps, each one a command you can copy. Pick a step to watch it run.
Tell us about your fleet and we will come back to you.