{"url":"https://nexovirt.com/how-it-works","title":"How it works: manage Proxmox in one panel · NexoVirt","description":"How NexoVirt works with Proxmox VE: add a host, adopt running guests, manage them in one panel, give customers a portal, automate via API.","markdown_url":"https://nexovirt.com/how-it-works.md","sections":[{"heading":"How it works: NexoVirt on top of Proxmox VE","content":"NexoVirt is a self-hosted panel that talks to your Proxmox hosts through the Proxmox API and a small agent on each node. You add a host, it imports what already runs, and from then on you manage every VM, container, IP and customer in one place, without reinstalling anything.\n\n[Install free](https://docs.nexovirt.com/getting-started/installation/) [See all features](https://nexovirt.com/features)"},{"heading":"From install to customers in five steps","content":"The panel installs on its own Ubuntu server with one command. Then:\n\n1. ### Add a Proxmox host\n\nPoint NexoVirt at a Proxmox VE host, fresh or already in production. A one-time SSH login installs a small agent and pins the host key; nothing on the host is reinstalled.\n2. ### Adopt what already runs\n\nThe panel imports your existing VMs, containers, storage and networks into one list across every host, so you start with everything you already have.\n3. ### Create and manage guests\n\nNew VMs and containers come from a six-step wizard with plans, cloud-init OS templates and IPs from your pools. Each guest gets a control panel with live charts, a console, snapshots, backups and reinstall.\n4. ### Hand customers a portal\n\nAssign an owner to a guest and that customer gets a portal with only their own servers. Plans add traffic limits and expiry, enforced automatically if you turn it on.\n5. ### Automate the rest\n\nEverything in the panel is also available through a REST API with one bearer token, and alerts reach you by email, Discord, Google Chat or any webhook."},{"heading":"What each step looks like","content":"Real screenshots of the panel with demo data.\n\n![The agent installs itself in the NexoVirt panel](https://nexovirt.com/assets/img/screenshots/onboard-progress-light.webp?v=1792068738)\n\n### The agent installs itself\n\nOne SSH login, then every step runs live in the panel.\n\n- Works with nodes that already run guests.\n- Credentials encrypted at rest, a per-host SSH key generated for later updates.\n- A version-pinned agent, updated in one click.\n\n![One list of every guest in the NexoVirt panel](https://nexovirt.com/assets/img/screenshots/guests-light.webp?v=1792068738)\n\n### One list of every guest\n\nEvery VM and container across all hosts.\n\n- OS, IP, cores, memory and storage for each guest.\n- No switching between hosts or clusters.\n- Served from the panel database, so it opens even when a host is slow.\n\n![A guest in six steps in the NexoVirt panel](https://nexovirt.com/assets/img/screenshots/create-guest-os-light.webp?v=1792068738)\n\n### A guest in six steps\n\nPlacement, resources, OS, network, access and a final overview.\n\n- Create from a plan or custom specs, an OS template, DHCP or a static IP.\n- Actions return at once while a worker runs them.\n- xterm.js or noVNC console in the browser.\n\n![The customer portal in the NexoVirt panel](https://nexovirt.com/assets/img/screenshots/portal-light.webp?v=1792068738)\n\n### The customer portal\n\nCustomers see only the servers they own.\n\n- Power, console, SSH keys and 2FA for customers.\n- Ownership checked on the server for every request.\n- Branded email on the events that matter.\n\n![API tokens and docs in the NexoVirt panel](https://nexovirt.com/assets/img/screenshots/api-docs-light.webp?v=1792068738)\n\n### API tokens and docs\n\nTokens, scopes and the built-in API reference.\n\n- One response envelope on every endpoint.\n- Create a guest from a plan in one call.\n- Alert rules for downtime, load, backups and plan limits."},{"heading":"How does NexoVirt talk to Proxmox?","content":"Through two channels. The Proxmox VE API over HTTPS handles everything Proxmox can do itself. A small agent on each node handles host jobs the API cannot do, such as downloading OS images, writing cloud-init snippets and applying NAT rules.\n\n### NexoVirt panel\n\nRuns on your own server, with its own database for inventory and metrics.\n\n- Admin panel\n- Customer portal\n- REST API\n- Background workers\n\n### Proxmox VE API\n\nHTTPS to each host: guests, storage, networks, tasks and consoles.\n\n### nexovirt-agent\n\nOn every node. It fetches its jobs from the panel over HTTPS, so the node needs no extra inbound port.\n\n### Your Proxmox nodes\n\nRun your VMs and containers exactly as before. Removing NexoVirt leaves them untouched."},{"heading":"Under the hood","content":"The mechanics that make the panel fast and safe to run next to production.\n\n- ### Why do pages open instantly?\n\nA collector stores an inventory of every node, guest, storage and network, written only when something changes, plus metrics every 5 seconds for guests and every 30 seconds for nodes. Pages read that database, so they open at once and show an \"as of\" time when a host is unreachable.\n- ### What happens when I click Create?\n\nThe panel queues a job and shows the guest as provisioning right away. A worker downloads the cloud image on the node through the agent, imports it, applies cloud-init, starts the VM and deletes the download. A live page shows each step.\n- ### How are NAT rules applied safely?\n\nThe agent writes only its own NEXOVIRT iptables chains and never flushes built-in or Proxmox rules. It refuses public source ranges for masquerading and restores the rules at boot through its own systemd unit.\n- ### How are customers kept apart?\n\nEvery portal request checks on the server that the customer owns the guest, before any Proxmox call. Consoles run through a one-time session on your own domain, so Proxmox credentials never reach a browser.\n- ### How do I automate it?\n\nWith the REST API: one bearer token with optional IP allow-list and host scope, one response envelope, and the full guest lifecycle. Alerts and, on paid plans, event webhooks push changes to your other systems."},{"heading":"How it works: FAQ","content":"Does NexoVirt require reinstalling Proxmox?No. NexoVirt sits on top of your existing Proxmox VE hosts. A one-time SSH login installs a small agent, and the panel imports your running VMs, containers, storage and networks through the Proxmox API. Nothing is reinstalled and your nodes keep running exactly as they are.\n\nDoes NexoVirt modify or replace the Proxmox host?No. NexoVirt manages Proxmox through its API and a small on-host agent; it does not replace the Proxmox web UI or reconfigure the hypervisor. You can keep using the Proxmox UI alongside it, and removing NexoVirt leaves the host untouched.\n\nWhat does the on-host agent do?The agent is a lightweight helper installed once over SSH during onboarding. It handles host-side tasks the API cannot do directly, such as staging cloud images, writing cloud-init snippets and applying NAT rules. It communicates over an authenticated job queue and can be removed at any time from the Hosts page.\n\nHow does async provisioning work?When you create, reinstall, delete or power a guest, NexoVirt enqueues the job and returns immediately with an optimistic status, then a background worker runs the real Proxmox call and refreshes inventory. You watch progress on a live page instead of waiting on a blocked request, and the guest never flips to an unknown state mid-operation.\n\nHow are customers isolated in the portal?Every read and every action in the customer portal is re-checked against guest ownership on the server, so a customer can only ever see or control the servers assigned to them. A single Proxmox cluster safely serves many tenants, and the console proxies through your own origin so Proxmox credentials never reach the browser."},{"heading":"Related pages","content":"- [ All features Everything NexoVirt adds to Proxmox VE. ](https://nexovirt.com/features)\n- [ Multi-host and onboarding Add hosts and adopt running guests. ](https://nexovirt.com/features/multi-host)\n- [ Portal for an existing cluster Keep your cluster, add a portal. ](https://nexovirt.com/proxmox-portal-existing-cluster)\n- [ Proxmox control panel One panel for many Proxmox hosts. ](https://nexovirt.com/proxmox-control-panel)\n- [ Installation guide One command on a fresh Ubuntu server. ](https://docs.nexovirt.com/getting-started/installation/)\n- [ FAQ Answers to common questions. ](https://nexovirt.com/faq)"},{"heading":"Start running NexoVirt today","content":"Free for homelabs with unlimited VMs on up to 2 nodes. Running a hosting business? Upgrade in place when you grow, no migration.\n\n[Install free](https://docs.nexovirt.com/getting-started/installation/) [See pricing](https://nexovirt.com/pricing)"}],"faq":[{"question":"Does NexoVirt require reinstalling Proxmox?","answer":"No. NexoVirt sits on top of your existing Proxmox VE hosts. A one-time SSH login installs a small agent, and the panel imports your running VMs, containers, storage and networks through the Proxmox API. Nothing is reinstalled and your nodes keep running exactly as they are."},{"question":"Does NexoVirt modify or replace the Proxmox host?","answer":"No. NexoVirt manages Proxmox through its API and a small on-host agent; it does not replace the Proxmox web UI or reconfigure the hypervisor. You can keep using the Proxmox UI alongside it, and removing NexoVirt leaves the host untouched."},{"question":"What does the on-host agent do?","answer":"The agent is a lightweight helper installed once over SSH during onboarding. It handles host-side tasks the API cannot do directly, such as staging cloud images, writing cloud-init snippets and applying NAT rules. It communicates over an authenticated job queue and can be removed at any time from the Hosts page."},{"question":"How does async provisioning work?","answer":"When you create, reinstall, delete or power a guest, NexoVirt enqueues the job and returns immediately with an optimistic status, then a background worker runs the real Proxmox call and refreshes inventory. You watch progress on a live page instead of waiting on a blocked request, and the guest never flips to an unknown state mid-operation."},{"question":"How are customers isolated in the portal?","answer":"Every read and every action in the customer portal is re-checked against guest ownership on the server, so a customer can only ever see or control the servers assigned to them. A single Proxmox cluster safely serves many tenants, and the console proxies through your own origin so Proxmox credentials never reach the browser."}]}