NexWHM • Installation

Install NexWHM on your server

Follow this guide to install the NexWHM hosting management suite on a fresh supported VPS or dedicated server.

NexWHM Server Installation Guide

Overview

The NexWHM server package is installed on a **fresh supported Ubuntu VPS**. The public website at https://nexwhm.com provides the bootstrap installer and release files; the VPS runs the actual NexHM (server administration panel), NexPanel (customer hosting panel), NexAgent/NexCTL components, and hosting services.

The current stable release is **Nex Hosting Suite 1.0.0**.

Before you start

Use a fresh VPS. The installer is a system-level installer and should not be run on a server that already has HestiaCP, cPanel, Plesk, another hosting control panel, or conflicting Nginx/Apache/MySQL/DNS/mail configuration.

Current supported operating systems:

  • Ubuntu 24.04 LTS
  • Ubuntu 26.04 LTS
  • x86_64/amd64 is the expected server architecture for the current release.

You need:

  • Root access or `sudo` access
  • A public IPv4 address
  • A server hostname, for example `server1.example.com`
  • A hostname for NexHM, for example `whm.example.com`
  • A hostname for NexPanel, for example `panel.example.com`
  • DNS nameservers, for example `ns1.example.com` and optionally `ns2.example.com`
  • Enough disk, RAM, and CPU for the hosting workload

Recommended DNS layout

Before or immediately after installation, plan these DNS records:

```text

server1.example.com -> VPS_PUBLIC_IP

whm.example.com -> VPS_PUBLIC_IP

panel.example.com -> VPS_PUBLIC_IP

ns1.example.com -> VPS_PUBLIC_IP

ns2.example.com -> VPS_PUBLIC_IP


If `ns1` and `ns2` are inside the same domain, create the required registrar glue/child nameservers at your domain registrar. A second nameserver on a different network is recommended for production DNS redundancy.

## Install from nexwhm.com

SSH into the fresh VPS as root or an account with sudo privileges.

Download the official bootstrap installer:

```bash
wget https://nexwhm.com/downloads/install.sh

Make it executable:

```bash

chmod 700 install.sh


Run it as root:

```bash
sudo ./install.sh

You can also run it directly with Bash after downloading:

```bash

sudo bash install.sh


The bootstrap installer downloads the versioned Nex Hosting Suite archive from the central NexWHM server and verifies its SHA-256 checksum before executing the bundled installer.

## Installer questions

The current installer asks for the following values. Have them ready before starting.

### 1. NexHM hostname

Example:

```text
whm.example.com

This becomes the hostname used to access the server administration panel.

2. NexPanel hostname

Example:

```text

panel.example.com


This becomes the hostname used for the customer hosting panel.

### 3. Server hostname

Example:

```text
server1.example.com

Use the VPS's real fully qualified hostname.

4. Public IPv4 address

Example:

```text

203.0.113.10


Use the public IPv4 assigned to the VPS.

### 5. Primary DNS nameserver

Example:

```text
ns1.example.com

6. Secondary DNS nameserver

Example:

```text

ns2.example.com


This is optional during installation.

### 7. NexHM administrator username

Example:

```text
admin

The default suggestion is admin.

8. Administrator password

The current installer requires at least **10 characters**. Use a unique, high-entropy password.

9. Administrator email

Use an address that the server administrator can access.

10. Nex Hosting database password

The current installer requires at least **16 characters**. Use a unique password that is not reused elsewhere.

What the installer installs

The current Nex Hosting Suite installer installs/configures the following major components:

  • NexHM
  • NexPanel
  • NexAgent/NexCTL provisioning components
  • Nginx
  • PHP CLI/FPM
  • MySQL Server
  • BIND9 DNS
  • Postfix
  • Dovecot IMAP/POP3
  • Certbot
  • rsync
  • unzip/curl and required PHP extensions

It creates the main application under:

```text

/opt/nexhosting


System configuration is stored under:

```text
/etc/nexhosting

The web roots are exposed through:

```text

/var/www/nexhosting/panel

/var/www/nexhosting/hm


The command-line provisioning utility is installed as:

```text
/usr/local/sbin/nexctl

Database

The installer creates:

```text

Database: nexhosting

User: nexhosting

Host: 127.0.0.1

Port: 3306


The database password is supplied during installation and stored in the protected system configuration at:

```text
/etc/nexhosting/config.php

Do not make this file web-accessible or share its contents publicly.

After installation

The installer displays the configured NexHM and NexPanel URLs. They will initially be HTTP endpoints because the current installer creates the Nginx virtual hosts before TLS is issued.

Example:

```text

NexHM: http://whm.example.com

NexPanel: http://panel.example.com


Confirm that the DNS records point to the VPS and that both hostnames resolve correctly.

## Enable HTTPS

After DNS has propagated and both hostnames resolve to the server, issue certificates using Certbot/Nginx. For example:

```bash
sudo certbot --nginx -d whm.example.com
sudo certbot --nginx -d panel.example.com

Follow Certbot's prompts and verify the resulting HTTPS URLs:

```text

https://whm.example.com

https://panel.example.com


Do not expose an administrative panel over the public Internet without properly configured HTTPS.

## Firewall

The firewall should be configured according to the services you actually enable. At minimum, SSH and web traffic must remain reachable during setup. Typical web hosting ports include:

```text
22    SSH
80    HTTP
443   HTTPS
53    DNS (TCP/UDP)
25    SMTP (if mail service is enabled)
465   SMTPS (if enabled)
587   Submission (if enabled)
993   IMAPS (if enabled)
995   POP3S (if enabled)

Do not blindly open every port. Restrict administrative services where practical.

Verify the installation

Check the main service status:

```bash

systemctl status nginx

systemctl status mysql

systemctl status bind9

systemctl status postfix

systemctl status dovecot


Check the Nex Hosting command:

```bash
sudo nexctl --help

Check the installed configuration:

```bash

sudo cat /etc/nexhosting/INSTALL_INFO


Check Nginx syntax:

```bash
sudo nginx -t

First login

Open the NexHM hostname in a browser:

```text

https://whm.example.com


Sign in with the administrator username and password selected during installation.

Then open:

```text
https://panel.example.com

Use the appropriate hosting-panel account created by NexHM.

Updating NexWHM

The central NexWHM portal is the release authority. The server updater checks the license/installation, retrieves the current release, verifies the published SHA-256 checksum, and then runs the controlled update hook supplied by the release.

Download the updater:

```bash

wget https://nexwhm.com/downloads/nexwhm-update.sh

chmod 700 nexwhm-update.sh


Then run it with the installation credentials supplied by your NexWHM licensing system:

```bash
sudo NEXWHM_LICENSE_KEY='YOUR-LICENSE' \
  NEXWHM_INSTALLATION_ID='YOUR-INSTALLATION-ID' \
  NEXWHM_CURRENT_VERSION='1.0.0' \
  bash ./nexwhm-update.sh

The updater is for existing installations; it is not a replacement for the first-time installer.

Troubleshooting

Installer says the OS is unsupported

Check:

```bash

cat /etc/os-release


The current release accepts Ubuntu 24.04 and Ubuntu 26.04.

### DNS hostname does not open

Check the DNS records:

```bash
dig +short whm.example.com
dig +short panel.example.com

Both should return the VPS public IPv4 address.

Nginx configuration error

Run:

```bash

sudo nginx -t


Then inspect:

```bash
sudo journalctl -u nginx --no-pager -n 100

PHP errors

Check the PHP-FPM services and Nginx error log:

```bash

systemctl --type=service | grep php

sudo journalctl -u nginx --no-pager -n 100


### Database problems

Check MySQL:

```bash
systemctl status mysql

Do not post /etc/nexhosting/config.php publicly because it contains the database password.

Important production notes

The current 1.0.0 server package is the initial Nex Hosting Suite release. Before using it for a large production hosting fleet, test the complete workflow on a disposable VPS: account creation, website provisioning, PHP-FPM isolation, DNS changes, SSL issuance, database creation, mail delivery, backups, suspension/termination, and recovery.

Never install it over an existing hosting control panel. If you need to migrate from HestiaCP, cPanel, or another panel, perform a planned migration to a clean NexWHM server instead of running the installer on the existing panel server.

Quick installation reference

For an administrator who already has the prerequisites prepared:

```bash

wget https://nexwhm.com/downloads/install.sh

chmod 700 install.sh

sudo ./install.sh


Then answer the installer questions, configure DNS, issue HTTPS certificates, and verify NexHM/NexPanel access.