Nexo · built by Server Room · one licence per server

Nexo hosting control panel. As many hosting accounts as the server holds, each one sealed off from the rest.

Nexo is the hosting control panel we write ourselves and install on your dedicated server: a WHM alternative for you, the owner, and a cPanel alternative for every customer you host. Each account runs as its own Unix user with its own PHP-FPM pool and its own CPU, memory and disk limits. Underneath is the Linux hosting platform our own web hosting runs on, set up on the Ubuntu, Debian, AlmaLinux, Rocky Linux or Proxmox VE server you choose.

Want to see how it works first? The Nexo user guide covers installing, administration, resellers and every tool your customers get.

Ubuntu, Debian, AlmaLinux, Rocky Linux or Proxmox VEPHP 8.1 to 8.4, chosen per siteLet’s Encrypt on every site$45 or €45/mo per server, no setup fee

Administration, drawn as its owner sees it: the server’s health, accounts and their states, resellers, plans and the record of every change.

What goes on the machine

One installer, the whole hosting stack, each piece set up to work with the others

Nexo is not a screen bolted onto services you configure yourself. Its installer puts every service a hosting server needs onto a clean Linux machine, physical or virtual, writes their configuration for per-account use, and keeps writing it as you add accounts, sites, mailboxes and zones. The owner’s panel answers over TLS on port 2083; the panel’s own services listen on the loopback only.

Order Nexo with a server and there is nothing to run: we install it once the operating system is on, or when a ready server is handed over to you. On a server of your own it is two commands as root. The installer checks the release against our signature before it unpacks a file, leaves SSH and your own firewall rules as they are, and prints the first administrator’s sign-in once.

  1. panel
    Nexoweb app · worker · root agent on the loopback
    :2083 TLS
  2. web
    Apacheevent MPM · HTTP/2 · FastCGI to each account’s PHP-FPM
    :80:443
  3. php
    PHP-FPM8.1 · 8.2 · 8.3 · 8.4, one master per account per version
    unix sockets
  4. sql
    MariaDBphpMyAdmin by one-time sign-on
    127.0.0.1
  5. mail
    Postfix · Dovecot · rspamdSieve · Roundcube webmail · DKIM signing
    :25:465:587:993:995
  6. dns
    PowerDNSauthoritative for every hosted zone
    :53
  7. ftp
    Pure-FTPdTLS required, one chroot per login
    :2130000–30999
  8. guard
    restic · fail2ban · nftablesuser quotas · unattended security updates
    /backup
Isolation

Anatomy of one hosting account

An account on Nexo is not a folder with a password. It is a Unix user with its own home, its own PHP processes and its own share of the machine, built from the plan it sits on and rebuilt whenever that plan changes. A busy or broken site uses up its own allowance and nobody else’s.

Its own PHP
One PHP-FPM master for every PHP version the account’s sites use, running as the account under systemd with ProtectSystem=strict, a private /tmp and no way to gain privileges. open_basedir keeps PHP inside the home, and the socket is readable by Apache and the account alone.
Its own share
A systemd slice holds the account to the CPU, memory and process counts in its plan. Disk space and file counts are user quotas on ext4 or XFS.
Its own view
/proc shows every account its own processes and no one else’s, and an nftables table stops accounts’ processes from reaching the panel, its agent and the other services on the loopback.
Everything else, inside
Cron jobs, Node.js and Python apps, Git deploys and the SSH shell all start in the same sandbox as PHP. FTP logins are locked into a folder of the home and act as the account. Database names carry the account’s prefix, and a database user can only be granted that account’s own databases.
Who signs in

Three kinds of sign-in, one server

You run the server. Below you, resellers can sell hosting of their own; below them, each customer runs their own sites. Every sign-in sees exactly its own part of the tree, and every screen can carry the brand of whoever sells to the person looking at it.

CapabilityServer ownerResellerCustomer
Sees Everything on the server Their own customers, nothing else Their own accounts
Plans Any, with every limit: sites, disk, files, databases, mailboxes, FTP logins, CPU, memory, processes, mail an hour, backups kept, PHP ceilings Their own packages, within the plans you let them sell —
Accounts Create, move to another plan or owner, put on hold, release, close Create, suspend, unsuspend and terminate their customers’ accounts —
Welcome email Your own templates in English or Spanish, sent from your address and DKIM-signed, with a one-use link to choose a password Their own, under their brand Receives it when the account is ready
Log in as Any customer Their own customers —
API keys For a billing system: create, suspend, re-plan and close any account, and sign customers in The same, for their own customers only —
Limits Sets each reseller’s: how many accounts, how much disk, which plans Works inside them Their plan’s
Brand The panel’s name, logo, colour, help link and support address Their own, shown to their customers Sees their provider’s
Nameservers The server’s own, ns1 and ns2 under its name unless you set others Private ns1 and ns2 on their own domain —
Sites, mail, databases, DNS, files, apps, SSH, backups Through log in as, or restores and new passwords from the account’s page Through log in as Theirs to run, from their own panel
When it goes wrong Suspends a reseller together with every account under them — —
In the customer’s panel

What a customer does without opening a ticket

Each account holder signs in to a panel of their own: sites and domains, mail, databases, DNS, files, PHP, scheduled tasks and backups, and since Nexo 1.3 the tools developers used to need a cPanel server for. Everything below runs as the account, inside the same limits and sandbox as its PHP.

One-click apps
WordPress, Nextcloud, Joomla, Drupal, PrestaShop and Laravel, installed with their database in one step. WordPress sites get core, plugin and theme updates, hardening, an admin sign-in without a password, and a staging copy to try changes on, pushed live when it is ready with the live database saved first. An app the customer no longer wants comes off in one click.
Node.js and Python apps
Node.js 22, 24 or 26 and Python 3.11 to 3.14, each app a service that runs as the account from a folder of its home, kept running by systemd and served on the site’s address, with its state live in the panel and a log of its own. Secret settings such as API keys are stored encrypted and never shown again.
SSH, SFTP and Git
Keys only, never passwords, each key named and renamable: SFTP locked to the home, or a jailed shell in the same sandbox as PHP. Git repositories live in the account, publish a branch to a site on every push, and show their latest commit and when they last deployed. Scoped API tokens, limited to the addresses the customer names, reach the same account from scripts.
Locks and rules per site
Password-protected folders, an IP blocker, hotlink protection, custom error pages and directory listing on or off, plus a certificate the customer bought elsewhere, checked against the site’s name before it is installed, and a starter page published in one click while the real site is built.
Visitors and uptime
Visitors read from the site’s own log, for today or up to the last 14 days: pages, referrers, missing pages, crawlers and the countries visitors come from. Every site is checked from outside every five minutes, with its response time, its certificate’s expiry and 30 days of incidents on the same card.
Speed, with Nexo Turbo
Once the owner switches Nexo Turbo on, every site gets a Speed section: the page cache on or off, today’s hit rate and what it holds, a purge in one click, the under-attack check, and a one-click install of the cache plugin WordPress uses to drive the cache.
Mail, databases and DNS, further
Autoreplies and filters per mailbox, a spam score with allow and block lists, routing per domain, mailboxes added in bulk from a CSV file, remote MySQL from addresses the customer names, DNS lookups, a trace of which servers answer for a domain, route traces, and who is connected over FTP right now.
The real panel

Twelve screens from Nexo 1.4.6

Captured from the panel itself, with an invented hosting company on it, so you can see what you would be running before you order. Left column: the owner’s administration on port 2083. Right column: the panel each of your customers signs in to. The Nexo user guide walks through every one of these pages, step by step.

/admin Your administration

Nexo administration overview: accounts, server load, disk, notices, release and the Turbo cardNexo administration overview: accounts, server load, disk, notices, release and the Turbo card
Overview. Accounts and their states, server load, disk and memory, notices that need you, the installed release, and the Turbo front server with its cache and under-attack sites.
Nexo accounts list with domain, user, owner, plan, state and disk for each hosting accountNexo accounts list with domain, user, owner, plan, state and disk for each hosting account
Accounts. Every hosting account on the box with its owner, plan, state and disk, searchable by domain, user name or owner; a reseller’s accounts are tagged with the reseller.
Editing a Nexo hosting plan: limits for websites, storage, databases, mailboxes, CPU, memory and PHPEditing a Nexo hosting plan: limits for websites, storage, databases, mailboxes, CPU, memory and PHP
A plan’s limits. Websites, subdomains, aliases, storage, files, databases, mailboxes, FTP users, CPU, memory, processes, mail an hour, backups kept, the shortest cron interval and the PHP ceilings.
Nexo resellers page with each reseller's accounts, promised storage, disk used and brandNexo resellers page with each reseller's accounts, promised storage, disk used and brand
Resellers. How many accounts each may open, how much storage their plans may promise, which of your plans they may sell, and their brand; work as them or suspend them with everything under them.
Nexo API keys for WHMCS and billing scripts, with allowed addresses and last useNexo API keys for WHMCS and billing scripts, with allowed addresses and last use
API keys. One key per billing system, limited to the addresses you name, with its last use on the card; WHMCS connects in four steps shown on the same page.
Nexo setup emails settings: sender, brand, language and message templatesNexo setup emails settings: sender, brand, language and message templates
Setup emails. The welcome message a new account’s owner receives, in your name: your templates in English or Spanish, your sender, DKIM-signed by the panel, with a one-use link to choose a password.

/dashboard/hosting Your customer’s panel

A customer's Nexo hosting overview: storage, plan limits and connection detailsA customer's Nexo hosting overview: storage, plan limits and connection details
Overview. Storage against the plan, every limit as used of allowed, the addresses for DNS, webmail, FTP and mail apps, and 30 days of bandwidth by site.
A site's controls in Nexo with the Speed section: page cache, hit rate, purge and under-attack modeA site's controls in Nexo with the Speed section: page cache, hit rate, purge and under-attack mode
Speed, per site. With Turbo on: the page cache on or off, today’s hit rate, what is stored, a purge, and under-attack mode, beside the site’s error pages, listing, hotlink and IP rules.
Nexo file manager showing a WordPress site's public_html folderNexo file manager showing a WordPress site's public_html folder
Files. A file manager that acts as the account: upload files or whole folders by dragging them in, edit, move, set permissions, zip and unzip.
Managing a WordPress install in Nexo: updates, hardening, cache plugin and staging copyManaging a WordPress install in Nexo: updates, hardening, cache plugin and staging copy
WordPress, managed. Core, plugin and theme updates, hardening, the cache plugin for Turbo, and a staging copy pushed live with the live database saved first.
Nexo developer tab: SSH access, SSH keys and Git repositories with deploysNexo developer tab: SSH access, SSH keys and Git repositories with deploys
Developer. SFTP only or a jailed shell, named SSH keys, Git repositories that deploy a branch on every push, and API tokens for the customer’s own scripts.
Nexo visitor statistics over 14 days with pages, referrers and countriesNexo visitor statistics over 14 days with pages, referrers and countries
Stats. Visitors read from the site’s own log over up to 14 days: pages, referrers, missing pages, bots and countries, with an outside uptime check every five minutes.
Unattended

The jobs that run while nobody is signed in

A hosting server is mostly routine: certificates to renew, backups to take, updates to install, mail to sign. Nexo does that routine on a schedule of its own and tells you in the Overview’s notices when something fails.

Certificates, per site

Once a site’s name resolves to the server, Let’s Encrypt issues its certificate and renewals follow by themselves. A domain that keeps failing validation is backed off, so it cannot use up the failure allowance for every other site on the box.

tls shop.example.net · issued

Backups, every night

Between 02:00 and 06:00 UTC restic snapshots every account into an encrypted repository on the server, on a disk of its own when the installer is given one. Each plan says how many daily and weekly snapshots are kept. Customers restore a path, a database or a mailbox themselves, take one extra snapshot a day, or download one as a .tar.gz.

restic 5a2f9c1e · 3 databases · 12 mailboxes

Updates, signed

Every release comes with a manifest signed with our Ed25519 key, and the download’s size and SHA-256 must match it before anything is unpacked. The panel updates itself between 1 and 4 in the morning, New York time, or when you press Install, and keeps the three newest releases on disk as a way back.

release signature ok · switched

A record nobody can edit

Every change to every account is written with who made it and why, in the same database transaction as the change itself. Entries are chained by hash; Verify the record walks the chain and reports whether any entry was altered or removed.

audit verified · chain whole

Support without passwords

Open a customer’s own panel as them to see what they see. The session lasts up to two hours, is marked as yours on the account’s record, and cannot set passwords or start a restore.

session log in as · expires in 2 h

Mail that arrives

rspamd scores incoming mail and DKIM-signs outgoing mail. On zones the server hosts, SPF, DKIM, DMARC and the records mail apps use to configure themselves are written for every domain. Sending is rate-limited per mailbox and per account, at the plan’s hourly figure.

mail dkim=pass · spf=pass · dmarc=pass

Your billing system, connected

Make an API key under Administration, API, limit it to your billing server’s address, and WHMCS or your own code opens, suspends, re-plans and closes accounts as orders and invoices change. Our WHMCS module does that out of the box and gives each customer a button that signs them straight into their panel. Every call is recorded under the key’s name, and a key revoked stops at once.

api key “WHMCS” · account suspended
The licence

What the licence controls, and what it never touches

A key is issued for one server. Its first activation binds it to that machine’s firmware UUID, so a copy of the install carried to other hardware is refused, while a reinstall of the same machine keeps it. To move Nexo to another server, ask us to release the key.

What pauses is changing things: no new accounts, no edits, no file manager, until a valid licence is back. The licence page stays open so a key can be entered or renewed.

What never pauses is serving. A lapsed licence does not stop a website, a mailbox or a database, and it never takes a customer’s site down.

Price and machines

One line on the invoice, whatever the server carries

Nexo is its own line beside the server, never folded into it. The full licence’s price does not move with the number of accounts, resellers or sites; a server that only needs a handful of sites can take the 30-domain licence for less. Each figure below comes from the catalogue the checkout bills from.

Nexo, per server, per month$45 in New York, San Francisco and Miami
€45 in Bucharest and Amsterdam
SetupNone
Nexo 30 Domains, per server, per month$14.99 in New York, San Francisco and Miami
€14.99 in Bucharest and Amsterdam
The same panel, for up to 30 domains: each account’s main domain and its extra ones, not subdomains
Hosting accountsAs many as the server holds: the full licence counts none
On a 3, 6 or 12-month term$45 × the months. Software takes no term discount; the server’s own lines do
On a server that is not ours$45 a month, in US dollars: a licence on its own
Listed in the configurator asNexo Hosting Panel or Nexo Hosting Panel 30 Domains, under Software

Pick the machine

Every x86 machine we sell with Nexo, cheapest complete build first. Each price is that build, read together with its specification from one catalogue record; the link opens the configurator with Nexo and an operating system it installs on already chosen, where the system, memory, drives and the city can still change.

Show
Monthly, before tax. US cities bill in dollars, EU cities in euros, with the same figures.
Machine, and the build the price is forCitiesServer, fromWith NexoOrder
AMD Opteron X2150AMD Opteron X2150 APU, 4 cores 1.1GHz · 8 GB DDR3 · 1 × SATA-SSD 32 GB · 500 MbpsNew York, Bucharest$5 or €5$50 or €50Configureor with 30 domains
Intel Atom C2730Intel Atom C2730 Octa Core 1.70 GHz · 16 GB DDR3 · 1 × SATA-SSD 64 GB · 500 MbpsNew York$21.68$66.68Configureor with 30 domains
Intel Atom C2750Intel Atom C2750 Processor, 8 core 2.4 GHz · 16 GB DDR3 · 1 × SATA 500 GB · 500 MbpsNew York, Bucharest$34.40 or €34.40$79.40 or €79.40Configureor with 30 domains
Intel Xeon E3-1284L v4Intel Xeon E3-1284L v4 Quad Core 2.90 GHz · 16 GB DDR3 · 1 × SATA-SSD 240 GB · 500 MbpsNew York, Bucharest, Amsterdam, San Francisco$46.18 or €46.18$91.18 or €91.18Configureor with 30 domains
AMD Opteron 6300AMD Opteron 6366 HE Hexadeca Core 1.80 GHz · 16 GB DDR3 · 1 × SATA 500 GB · 500 MbpsNew York, Bucharest, Miami$51.86 or €51.86$96.86 or €96.86Configureor with 30 domains
Intel Xeon E3-1284L v3Intel Xeon E3-1284L v3 Quad Core 1.80 GHz · 16 GB DDR3 · 1 × SATA-SSD 240 GB · 500 MbpsNew York, Bucharest$52.18 or €52.18$97.18 or €97.18Configureor with 30 domains
Intel Xeon E3-1585L v5Intel Xeon E3-1585L v5 Quad Core 3.00 Ghz · 32 GB DDR4 · 1 × NVMe-SSD 240 GB · 1 GbpsNew York, Bucharest, San Francisco, Amsterdam, Miami$62.58 or €62.58$107.58 or €107.58Configureor with 30 domains
Intel Xeon D-1500Intel Xeon D-1548 Octa Core 2.00 GHz · 32 GB DDR4 · 1 × NVMe-SSD 240 GB · 1 GbpsNew York, Miami, Bucharest, Amsterdam, San Francisco$62.58 or €62.58$107.58 or €107.58Configureor with 30 domains
Intel Xeon E5-2600 v1/v2Intel Xeon E5-2630L Hex Core 2.00 GHz · 32 GB DDR3 · 2 × SATA 500 GB (RAID 1) · 500 MbpsNew York, Bucharest, Miami$70.93 or €70.93$115.93 or €115.93Configureor with 30 domains
Intel Xeon E5-2600 v3/v4Intel Xeon E5-2620 v4 Octo Core 2.10 GHz · 32 GB DDR4 · 2 × SATA 500 GB (RAID 1) · 1 GbpsNew York, Bucharest, San Francisco, Miami, Amsterdam$73.47 or €73.47$118.47 or €118.47Configureor with 30 domains
Intel Xeon Silver / GoldIntel Xeon Silver 4110 8 Core 2.10 GHz · 16 GB DDR4 · 2 × SATA-SSD 240 GB (RAID 1) · 1 GbpsNew York, Bucharest, San Francisco, Miami, Amsterdam$83.67 or €83.67$128.67 or €128.67Configureor with 30 domains
Intel Xeon E-2286MIntel Xeon E-2286M 8 CORE 2.40 GHz · 32 GB DDR4 · 1 × NVMe-SSD 240 GB · 1 GbpsBucharest€105.99€150.99Configureor with 30 domains
Intel Xeon E5-4600 v1/v24 × Intel Xeon E5-4650L Octo Core 2.60 GHz · 64 GB DDR3 · 2 × SATA 500 GB (RAID 1) · 500 MbpsNew York, Bucharest, Miami$109.69 or €109.69$154.69 or €154.69Configureor with 30 domains
Intel Xeon E5-4600 v3/v44 × Intel Xeon E5-4650 v3 12 Core 2.10 GHz · 128 GB DDR4 · 2 × SATA 500 GB (RAID 1) · 1 GbpsNew York, Bucharest, Miami, San Francisco, Amsterdam$186.37 or €186.37$231.37 or €231.37Configureor with 30 domains
AMD EPYCAMD EPYC 7413 24 CORE 2.65 GHz 128MB L3 CACHE · 32 GB DDR4 · 1 × SATA-SSD 240 GB · 1 GbpsNew York, Bucharest$217.59 or €217.59$262.59 or €262.59Configureor with 30 domains
Intel Xeon Gold4 × Intel Xeon Gold 6130 16 Core 2.10 GHz · 128 GB DDR4 · 2 × SATA 500 GB (RAID 1) · 1 GbpsNew York, Bucharest, San Francisco$409.38 or €409.38$454.38 or €454.38Configureor with 30 domains
Before you install

Questions administrators ask first

What does the installer need from the server?

Root on a current Linux: Ubuntu 22.04, 24.04 or 26.04, Debian 12 or 13, AlmaLinux, Rocky Linux, RHEL or Oracle Linux 9 or 10, or a Proxmox VE 8 or 9 host, where Nexo runs beside your virtual machines and leaves the node’s name alone. A virtual machine does as well as bare metal; a container does not, because it cannot hold the disk quotas every account gets. It also needs a public IPv4 address and /home on ext4, XFS or ZFS: the installer turns quotas on for ext4, uses ZFS’s own, and on XFS without them sets them for the next boot and asks for one restart. It stops before changing anything if cPanel, Plesk, DirectAdmin, CyberPanel, HestiaCP or VestaCP is installed, or if Apache is already serving sites, because it takes over the web, mail and DNS services.

Can it go on before the server has a host name?

Yes. It installs on the server’s IPv4 address with a self-signed certificate. Give the server its name later under Administration, Settings: the panel, webmail, mail and FTP move to that name, with a Let’s Encrypt certificate as soon as the name resolves to the machine.

Which PHP versions can a site run?

PHP 8.1, 8.2, 8.3 and 8.4, chosen site by site, with 8.3 as the default. The memory limit and the upload and post sizes (up to the plan’s ceilings), execution and input times, input variables, the time zone and error display are set per account, and a site’s own .user.ini still works.

What happens to hosted sites if the licence lapses?

They keep serving. Websites, mail and databases stay up, and nightly backups and certificate renewals carry on; only changes through the panel pause until the licence is valid again. The panel checks its licence every hour; if a check fails, it carries on for 72 hours of grace and tells you, so a short outage on either side changes nothing.

Can my customers run Node.js or Python, or use SSH and Git?

Yes, from their own panel. A Node.js (22, 24 or 26) or Python (3.11 to 3.14) app runs as the account, inside its plan’s CPU and memory, is served on one of its sites and keeps a log of its own. SSH takes keys only and lands in a jail on the account’s own files, or in SFTP alone if you prefer; Git repositories can publish a branch to a site on every push. Nothing they run there reaches another account.

Is there anything faster than plain Apache in front of the sites?

Yes: Nexo Turbo, our own front server, part of every licence since Nexo 1.4 and switched on from the administrator’s overview. It takes ports 80 and 443 (UDP too, for HTTP/3) and moves Apache to loopback with its configuration otherwise untouched, so .htaccess, rewrites and every per-site control keep working. It adds HTTP/2 and HTTP/3, Brotli, a full-page cache driven by the headers popular WordPress cache plugins already send, per-IP limits and a proof-of-work check for sites under attack, and PHP-FPM gets OPcache. Switching it off puts Apache back on 80 and 443 exactly as before, and a start that fails rolls itself back.

Where do the backups live?

In an encrypted restic repository on the server itself, under /backup, which the installer can put on a disk of its own. That undoes a deleted file, a dropped table or a bad update; it is not a copy off the machine, so keep one elsewhere if the server itself is what you need to survive.

Is there a smaller licence for a server with only a few sites?

Yes, with our servers: Nexo Hosting Panel 30 Domains is the same panel, every feature included, with room for 30 domains. Each account’s main domain and every extra domain added to it count; subdomains do not. At 30 the panel turns away a new domain and everything already hosted carries on, and moving to the full licence lifts the limit within a day. Its monthly price is in the cost table above. It is not sold as a licence on its own.

Does a 12-month term make Nexo cheaper?

No. Software on our servers is billed at its monthly price times the months on every cycle; a longer term discounts the server’s own lines, not Nexo.

Does Nexo invoice my customers?

No. Nexo runs the hosting, not the billing, and connects to the billing you already use. With an API key from Administration, API, a billing system creates, suspends, re-plans and closes accounts as invoices are paid or missed. For WHMCS there is a ready module (download it here) that also puts a “Log in to control panel” button in your customers’ client area.

Can I bring my accounts over from cPanel?

Yes. Nexo reads cPanel’s full account backups: the websites and their files, mailboxes and their mail, databases with their users, DNS zones and cron jobs come across, and each account lands on the Nexo plan you choose. Send us the backups or access to WHM and we move them for you, one account or a few hundred.

I followed “Powered by Nexo” from my host’s panel. Who do I ask for help?

Your hosting company: it runs the server your account lives on and handles your billing and support. Its help link or address sits beside that line at the foot of every page of your panel.