Vinza Server (multi-server)

Updated 19 Oct 2026 Published

Vinza Server (multi-server)

Vinza Server turns one panel into the control point for several machines. Each extra machine (a node) runs only the lightweight vinza-agent, not a whole panel. From the panel you install software on it, place hosting accounts on it, open its files, terminal, services and logs, and move accounts between servers.

Note

Vinza Server is included at no extra cost with every paid plan (Starter, Profesional and Enterprise). It is not available on the Free plan. Install it from the Vinza Store; it then appears as Overview → Vinza Server (/apps/vinza-server/). Everything in it is for administrators only.

Add a server

  1. Open Vinza Server and click Add Server (top right). Give it a name and optional notes, then click Next.
  2. The panel shows a one-line command with a one-time token. The token is valid for 15 minutes (a countdown is shown). Run the command on the new machine as root:
    curl -fsSLk https://YOUR_PANEL:2711/enroll/sh | sudo bash -s -- TOKEN=<token>
  3. The installer explains what it will do (download the agent from your panel, install it as a service in /opt/vinza-server, open TLS control port 7900, register with your panel) and asks you to type yes. For unattended runs add YES=1 after the token.
  4. When it finishes it prints a fingerprint. In the panel the server row turns online; open its ⋮ menu → Confirm fingerprint and check that the value matches. Only confirmed nodes can be controlled.
Warning

The panel connects to the node on TCP 7900. Allow that port from the panel's IP in the node's firewall and in your cloud provider's firewall. The node needs curl and openssl. If the token expired, use ⋮ → Install command to get a fresh one.

Install components on a node

A new node is a bare machine. Select it and open the Components tab, tick what it needs and click Install selected: Nginx, Apache, MariaDB, PostgreSQL, PHP, Python, Node.js, Go, Redis, Docker, phpMyAdmin, Let's Encrypt, fail2ban and WAF. Installing takes a few minutes; progress is shown on the page and logged on the node in /var/log/vinza-components.log. Reinstall and Uninstall are available for installed components.

The panel's own server is a node too, but its software is managed by the panel's apps, so its components here are read-only.

Put hosting accounts on a node

When you create a hosting account under Server → Users, choose its Server: This server (panel host) or one of your online nodes. The account's Linux user, websites and databases are created there. Billing systems can do the same with the server field of the Provisioning API.

Mail always lives on the panel host, whichever server the account is on.

Move an account to another server

Open the account under Server → Users and edit it. The Move to another server card lets you pick a target (the panel host or another node) and click Move account.

What happens:

  1. The panel checks the target first: it must be confirmed and reachable, have the account's PHP versions, MySQL/MariaDB, a web server and enough free space in /home. Anything that cannot move is refused up front with the reason.
  2. The account is suspended while it is copied (a few minutes for a small account), so its websites are offline during the copy.
  3. Its home (all website files, logs and configs), MySQL/MariaDB databases and users, Let's Encrypt certificates, crontab and FTP accounts are copied and checked.
  4. Websites and PHP pools are built on the target, the panel's records and the DNS A records point there, and the account is unsuspended.
  5. The old copy on the source server is kept for 7 days, then removed automatically.

The card shows the status and a log. If a move fails before the switch, the account stays where it was and you can click Retry move.

A move is refused when the account is suspended, has a termination in progress, already has a move running, or has websites or databases on more than one server. App and reverse-proxy websites, sites whose files are outside the account home, and PostgreSQL databases cannot be moved yet.

The tabs

Use the node bar to pick All (the fleet overview) or one node, then a tab:

TabWhat you can do
UsersLinux users and MySQL/MariaDB users on the node
Websites / DatabasesCreate and remove websites and databases on a node, issue SSL, migrate a single website or database to another node
ComponentsInstall, reinstall and uninstall server software
SecurityFirewall rules, fail2ban jails (ban/unban), SSH hardening and WAF settings
TerminalA live shell on the node
FilesFile manager: edit, upload, download (folders as .tar.gz), permissions, copy between nodes
ServicesStart, stop and restart systemd services; running processes
LogsTail nginx, apache, syslog, auth, mysql or any path
MonitorLive CPU, RAM, disk, load and uptime
HelpA built-in guide to all of the above

Per-node actions

The ⋮ menu on each server row has: Install command, Confirm fingerprint, Edit host & roles, Update agent, Panel link…, Harden / Unharden, Reboot node and Remove server.

  • Roles (web, db, edge, cache, storage) feed the Auto placement suggestion when you create a website or database.
  • Update agent pushes the panel's agent version to the node; the Agent column flags nodes that are outdated.
  • WireGuard mesh: the card under the server table builds a private encrypted network (10.99.0.0/24) between the panel and the nodes. After that, Harden restricts a node's agent port (7900) and MySQL (3306) to the panel and the mesh. Unharden reverses it.
  • Remove server removes the node from the panel; objects on it are not deleted. A server that still hosts accounts cannot be removed.

A background check pings every node every 2 minutes and raises a panel notification when a node goes offline or crosses a resource threshold.

Tip

If a node runs its own full VinzaPanel, set its address with ⋮ → Panel link…. You can then jump into that panel from the server switcher in the top bar. That panel stays the owner of its own websites, users and databases.

On this page