Add net.slot_range, a shrinkable container slot range (read as the IPv4 last octet a new container may take; idx = octet-1) that bounds how many containers can be created and, consequently, how much of the user-port block 10000-29999 a host reserves. Default 2-201 = 200 slots; must always be a sub-range of 2-201 (only-shrink rule). Affects ONLY new containers — existing ones keep their slot/ports. - cfg: add net.slot_range with strict ParseSlotRange validation (exactly one '-', both ends integers in 2..201, lo<=hi), SlotCount/ SlotIdxBounds helpers, and VPSMGR_SLOT_RANGE env handling in FillAuto. Register net.slot_range as operator / next-add in the config registry. - db/mgr: NextFreeIdx now picks from a caller-supplied [idxMin,idxMax] window instead of the fixed 1..cfg.MaxUsers; mgr.Add feeds it from the configured range. Existing users outside a narrowed range keep their slots. - admin panel: capacity readout follows SlotCount() instead of a fixed 200 (honestly shows over-capacity when pre-existing users fall outside a shrunken range). - installer: 00-checklist asks the slot range right after the subnet octet (env/adoption/non-interactive branches, validated). The port-occupancy check now scans only the range's user-port span rather than the whole 10000-29999. - 80/443 handling: if either is already bound by a non-vpsmgr process, the install no longer fails — it proceeds with Traefik installed but DISABLED (net.traefik false, no autostart). 00-check writes a marker that install.sh turns into VPSMGR_TRAEFIK=0 for 30-traefik and the panel. A belt-and-suspenders guard skips the force-off when our own traefik.service is already active (update/adoption). SSH 30000-31999 and the user-port span remain hard failures. - traefik: bump pinned version to 3.7.12 and rewrite 30-traefik's enable/disable decision to respect the effective net.traefik (forced env > adopted config > default), so a disabled traefik is never briefly started. - docs: README(s), config example, architecture and configuration docs updated; tests added for slot-range parsing and the FillAuto env vars. Generated with Codebuff 🤖 Co-Authored-By: Codebuff <noreply@codebuff.com>
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.