Incus 7 on cgroup v2 writes memory.swap.max=0 for every container unless limits.memory.swap carries an explicit byte amount (true/false both end up as 0), so containers previously got no host swap at all and `free` inside showed 0. Add incus.swap_ratio (default 0.5) so each container gets limits.memory.swap = limits.memory x ratio, set at create/reinstall and on quota changes. - config: incus.swap_ratio field + registry entry (non-negative float, 0 disables swap; ApplyImmediate) - lx: Client carries swapRatio; SetMem keeps swap proportional, SetSwap refreshes only the swap key - mgr: ApplySwapToAll refreshes every container from the DB memory quota (idempotent, no restart) - cli: `vps config set incus.swap_ratio N` re-applies to all containers automatically; `vps swap-reapply` is the manual/repair path for containers created before swap support - docs: configuration/architecture/README updated Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
Documentation
Technical documentation for vpsmgr. All docs are in English.
| Doc | What it covers |
|---|---|
| architecture.md | System design: components, storage, network, security, traffic, image, install/uninstall lifecycle |
| configuration.md | Full reference for /etc/vpsmgr/config.yaml |
| ipv6.md | IPv6 pass-through design: deterministic addresses, prefix support, routing, installer flow |
| development.md | Building, testing, releasing, conventions |
See also AGENTS.md at the repo root — short version aimed at AI coding agents.