Tenant isolation
Why instances default to a KVM VM, why a shared kernel is not a tenant boundary, and the three network controls every node class enforces so tenants can't see, reach, or spoof each other.
SpipCP is built so you can sell hosting to many tenants: you can run instances that hold untrusted tenant content next to each other on one node, and the boundary between them holds. Two things make that real — instances default to a KVM VM, and every node class keeps tenants apart on the network.
VM by default, container by exception
Every instance is one of two types:
| Type | What it is | When |
|---|---|---|
| VM (KVM) | Hardware-virtualised — its own kernel, isolated from the host and its neighbours. | The default. Safe for untrusted tenant content. |
| Container (LXC) | Shares the host kernel. Lighter, denser. | A trusted / internal-only opt-in. |
A shared kernel is not a tenant boundary
An LXC container shares the host kernel, so a kernel bug becomes a way to take over the host. A container is not a safe boundary for untrusted tenant content. That's why VM is the default and container is labelled trusted/internal only in the create dialog — use a container only for workloads you control.
This is the same for every class — vps, dedicated-single-ip, and dedicated-multi-ip all default to
VM and all allow container as the trusted opt-in. See Node topology for the
full capability table.
The network boundary
A VM isolates the compute. The other half is the network: tenants share a node's NAT bridge, so the bridge itself has to keep them apart. Every class enforces three controls:
| Control | What it stops | How |
|---|---|---|
| L2 isolation | One tenant scanning or talking to a neighbour on the local network. | The shared bridge gives tenants no direct link to each other. |
| Egress firewall | A guest reaching the node's management (the panel, the worker). | A guest can reach the internet but cannot reach host management. |
| Anti-spoof | A tenant faking a neighbour's IP or MAC. | Each interface is pinned to its own address. |
So a tenant can't see its neighbours, can't reach the control plane, and can't impersonate another address. All three are on for every class.
The boundary belongs to the node class
The isolation rules are part of the node's class, so what the agent applies and what the instance workspace shows you come from the same source. It's a property of the node class, not a per-instance toggle you can forget to set.
Next steps
- Node topology classes — how a node declares what it is and what each class can deliver.
- Instances — creating VM or container instances on a node.
- Site owners — the next isolation layer down: a per-site Linux owner inside an instance.
Node topology classes
A node declares what it is when you add it — VPS, single-IP dedicated, or multi-IP dedicated. The class decides how instances are reached and what instance creation can offer.
IPv6 & IPv6-only nodes
SpipCP runs end to end over IPv6 — including on an IPv6-only box with no public IPv4. The panel, agents, child instances, and hosted sites all work, and your normal IPv4 nodes are completely unchanged.