Anomaly-based decisions
An IsolationForest model is trained on each container's own history, so what counts as unusual is learned per container rather than fixed in advance.
Collects per-container metrics, learns what normal looks like, and adjusts CPU and memory through the Proxmox CLI

Install on your Proxmox host:
curl -sSL https://raw.githubusercontent.com/fabriziosalmi/proxmox-lxc-autoscale-ml/main/install.sh | bashCheck the three services:
systemctl status lxc_autoscale_api lxc_monitor lxc_autoscale_mlBefore letting it act on anything, set dry_run: true in /etc/lxc_autoscale_ml/lxc_autoscale_ml.yaml and read the log for a few cycles. It will report the decisions it would have taken without calling the API.
| Requirement | Version |
|---|---|
| Proxmox VE | 8.x (Debian 12). Developed and tested there. |
| Python | 3.10 to 3.12 |
| Operating system | Debian-based Linux |
Proxmox VE 9 ships Python 3.13, which the pinned numpy, pandas and scikit-learn do not yet support. The API and the monitor run there; the model does not.
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Monitor │────▶│ Model │────▶│ API │
│ (Metrics) │ │ (ML Engine) │ │ (Actions) │
└─────────────┘ └─────────────┘ └─────────────┘
│ │ │
▼ ▼ ▼
Collect CPU, Train model, Apply scaling
RAM, disk, detect anomalies, decisions to
network stats predict needs containerspct on the host.The three run as separate systemd services and only share the metrics file.
See the changelog. v1.3.0 fixed three defects that each broke the scaling loop end to end, so versions before it did not autoscale. If you are running one, upgrade.
Released under the MIT License.