Guide · For administrators
Introduction
KoaVM is the panel to sell and manage VPSs, built on Incus. One program does everything: API, interface for you and your customers, job queue, charts, console, migration from other panels.
How it works
- The panel runs on one server (it can be one of the nodes). It is a single binary,
koavm, with its SQLite database in/var/lib/koavm. - Nodes are the servers where VPSs run, with Incus installed. The panel talks to Incus through its API with a certificate: nothing to install on the nodes.
- VPSs are KVM virtual machines on the KoaVM nodes. They start from the systems you offer (the Linux distributions of the catalogue, Windows Server, your own templates) with static network, password and SSH key already set, and if you want with an app already installed (WordPress, Docker, a hosting panel).
- RAM, disk and vCPUs are counted on the resources assigned to VPSs. For each node you choose how much extra to sell (overbooking) and whether RAM can use the disk when needed; RAM freed by VPSs goes back to the node.
- Firewall, volumes and floating IPs: every VPS can have its own firewall, applied by the node; extra disks are volumes you detach and attach to another VPS; extra IPs move between VPSs of the same client. See Firewall, volumes and floating IPs.
- Self-service (optional, off by default): besides plan VPSs you can sell a package of resources with which the customer creates, resizes and deletes their own VPSs; the panel counts hourly usage for billing. See Self-service and hourly usage.
- Providers (OVHcloud, Hetzner, Contabo, Scaleway) connect with their API keys: the panel takes the additional IPs from there and, if you want, resells their VPSs under your brand.
- License: without a key the panel runs as a 30-day trial with 1 node and 5 VPSs, with every feature; with the license you pay per node. Customers' VPSs are never shut down because of the license. See License.
- Panel copy: every night the panel saves an encrypted copy of itself to a backup destination, to start again on another server if its own is lost. See Updates and versions.
Who sees what
| Administrator | Customer | |
|---|---|---|
| Address | /admin | / (customer area with your brand) |
| VPSs | all | only their own |
| Nodes, IPs, plans, providers | yes | no |
| Snapshots and backups | yes | within the plan limits |
| Team and API keys | — | people with a role (administrator, technician, read-only) and keys for scripts |
| Load balancers | all, for the customers | their own, if the service includes them |
Requirements
- Panel: Debian 12/13 or Ubuntu 22.04/24.04; 1 vCPU and 1 GB of RAM are enough. Automatic HTTPS needs a domain name and ports 80 and 443 free.
- Nodes: a Debian or Ubuntu server with virtualization enabled (KVM). The panel sets it up on its own (ZFS and Incus 7.0 LTS); a server that already runs Incus 6 or newer connects with a token. A ZFS storage pool is recommended; LVM, dir and btrfs also work.
- Network: a bridge for the VPSs on the node (usually
br-vps) or the providers' IPs (the panel creates the right network interfaces on its own).
Where to start
Right after installing, the Overview shows the First steps: brand, first node, IPs, first VPS, emails, backup destination, panel copy, alerts and license. Each step ticks itself when it is done and has a Go button to the right page; the card disappears when you are finished, or earlier with Hide.
- Install the panel.
- Connect the first node.
- Add an IP block and create a plan.
- Choose the systems and apps to offer.
- Create a customer and their first VPS.