Home Features Pricing
Resources
Company 🟢 Live Demo
Free Lifetime Get License

Installation Guide

This is the complete step-by-step guide to install HPanel on a fresh Ubuntu server — from DNS setup to your first hosting account. Follow every step carefully.

Prerequisites

  • A clean Ubuntu 22.04 or 24.04 LTS server (VPS or Dedicated)
  • Minimum 2 GB RAM (4 GB recommended)
  • 20 GB free disk space (SSD recommended)
  • Root SSH access to your server
  • A valid HPanel license key (purchase from pricing page or start a free trial)
  • A registered domain name (e.g., yourdomain.com)
  • No other control panels installed (cPanel, CyberPanel, etc.)
ℹ Important: Your server IP must match the IP address registered in your HPanel license. If you haven't purchased a license yet, note down your server's IP address first.

Step 1: Set Up DNS Records (Before Installation)

Before installing HPanel, you need to configure your domain's DNS records. Go to your domain registrar (e.g., Namecheap, GoDaddy, Cloudflare) and add the following records:

1.1 — Panel Access Domain (Required)

This is the domain where you and your clients will access the HPanel control panel. Create an A record pointing to your server IP:

TypeHost / NameValue / Points toTTL
ApanelYOUR_SERVER_IPv43600
AAAApanelYOUR_SERVER_IPv63600

This creates panel.yourdomain.com → points to your server. The HPanel login page will be accessible at https://panel.yourdomain.com.

🌐 IPv6 Support: If your server has an IPv6 address, add the AAAA record as well. HPanel fully supports dual-stack (IPv4 + IPv6) networking. If your server is IPv4 only, skip the AAAA records.

1.2 — Server Hostname (Required)

Set your server's hostname. This is used in email headers and server identification:

TypeHost / NameValue / Points toTTL
AserverYOUR_SERVER_IPv43600
AAAAserverYOUR_SERVER_IPv63600

This creates server.yourdomain.com as your server's hostname.

1.3 — Nameserver Records (Required for Hosting DNS)

If you want HPanel to manage DNS for your clients' domains (recommended), you need to set up two nameserver records. These are the nameservers your clients will use:

TypeHost / NameValue / Points toTTL
Ans1YOUR_SERVER_IPv43600
Ans2YOUR_SERVER_IPv43600
AAAAns1YOUR_SERVER_IPv63600
AAAAns2YOUR_SERVER_IPv63600

This creates ns1.yourdomain.com and ns2.yourdomain.com as your nameservers.

⚠ Note: If you use a single server, both ns1 and ns2 will point to the same IP. For production environments with high availability, we recommend using two separate servers for ns1 and ns2.

1.4 — Register Custom Nameservers (Glue Records)

For your nameservers to work properly, you also need to register them as Glue Records (also called Child Nameservers) at your domain registrar:

  • Go to your domain registrar's dashboard
  • Find "Custom Nameservers", "Glue Records", or "Register Nameservers" option
  • Register: ns1.yourdomain.comYOUR_SERVER_IP
  • Register: ns2.yourdomain.comYOUR_SERVER_IP

This step is essential — without glue records, your nameservers will not resolve.

1.5 — Complete DNS Example

Here's a complete example. If your domain is myhosting.com and server IP is 95.217.100.50:

TypeHostValuePurpose
Apanel95.217.100.50Panel access URL
Aserver95.217.100.50Server hostname
Ans195.217.100.50Primary nameserver
Ans295.217.100.50Secondary nameserver
AAAApanel2a01:4f8:c17:xxxx::1Panel access (IPv6)
AAAAserver2a01:4f8:c17:xxxx::1Server hostname (IPv6)
AAAAns12a01:4f8:c17:xxxx::1Primary NS (IPv6)
AAAAns22a01:4f8:c17:xxxx::1Secondary NS (IPv6)

After adding these records, your clients will set their domain nameservers to ns1.myhosting.com and ns2.myhosting.com, and access the panel at https://panel.myhosting.com.

⏱ DNS Propagation: DNS records can take 15 minutes to 48 hours to propagate worldwide. You can check propagation status at dnschecker.org.

Step 2: Connect to Your Server via SSH

Open a terminal (or PuTTY on Windows) and connect to your server as root:

local:~$ ssh root@YOUR_SERVER_IP

Once connected, set your server's hostname:

root@server:~$ hostnamectl set-hostname server.yourdomain.com

Step 3: Download & Run the Installer

Download the HPanel setup script and run it:

root@server:~$ wget -O setup.sh https://securedownloads.hpanel.net/latest.sh && sudo bash setup.sh

The installer will ask for your license key. Enter the license key you received after purchase.

Step 4: Automatic Installation

The setup script handles everything automatically. Sit back and wait — installation typically takes 5–15 minutes depending on your server's speed and internet connection.

The installer will:

  • Verify system requirements and OS compatibility
  • Update system packages to latest versions
  • Install Nginx (web server with FastCGI cache support)
  • Install PHP-FPM (PHP 7.4, 8.0, 8.1, 8.2, 8.3)
  • Install MariaDB (database server)
  • Install Node.js and PM2 (panel application runtime)
  • Install Postfix and Dovecot (email server)
  • Install ClamAV (malware scanning)
  • Install Fail2Ban (brute force protection)
  • Install Redis (object caching)
  • Install BIND (DNS server)
  • Deploy the HPanel application and admin panel
  • Generate SSL certificate for the panel domain
  • Configure panel access ports (2053, 2057, 2059) with SSL
  • Activate your license on the license server
  • Start all services and configure firewall
✅ Installation Complete! When finished, the installer will display your admin login credentials. Save these immediately — you'll need them to access the panel.

Step 5: Access the Panel

HPanel uses port-based access — each role has its own dedicated port, just like industry-standard control panels:

PanelURLLogin
HAdminhttps://YOUR_SERVER_IP:2057Username: root + Server root password
User Panelhttps://YOUR_SERVER_IP:2053User credentials
Webmailhttps://YOUR_SERVER_IP:2059Email account credentials

You can also use your panel domain with the port:

https://panel.yourdomain.com:2057 # HAdmin
https://panel.yourdomain.com:2053 # User Panel
https://panel.yourdomain.com:2059 # Webmail

Step 6: Initial Server Configuration

After logging in as admin, complete these initial configuration steps:

6.1 — Configure Server Settings

  • Go to Admin → Server Settings
  • Set Server Hostname: server.yourdomain.com
  • Set Panel URL: https://panel.yourdomain.com
  • Set Primary IP: Your server's IP address

6.2 — Configure Nameservers

  • Go to Admin → DNS Settings
  • Set Nameserver 1: ns1.yourdomain.com
  • Set Nameserver 2: ns2.yourdomain.com
  • These nameservers will be automatically assigned to all new hosting accounts

6.3 — Create a Hosting Package

  • Go to Admin → Packages → Create Package
  • Set package name, disk quota, bandwidth limit, domains, email accounts, databases, etc.
  • This defines the resource limits for hosting accounts

6.4 — Create Your First Hosting Account

  • Go to Admin → Accounts → Create Account
  • Enter the domain, username, password, and select a package
  • The account is created instantly with all services configured

Step 7: Client Domain Setup

When a client adds their domain to HPanel, they need to update their domain's nameservers at their registrar:

Nameserver 1: ns1.yourdomain.com
Nameserver 2: ns2.yourdomain.com

Once nameservers propagate (usually 1–24 hours), the domain will resolve to your server and HPanel will automatically:

  • Create the DNS zone with all required records
  • Issue a free SSL certificate via Let's Encrypt
  • Configure Nginx server block for the domain
  • Set up email (SPF, DKIM, DMARC) records

Troubleshooting

Can't access panel login page

  • Make sure you're using the correct port: :2057 for HAdmin, :2053 for User Panel
  • Opening panel.yourdomain.com without a port shows a default page — this is expected behavior
  • Check if DNS has propagated: visit dnschecker.org
  • Ensure panel ports (2052–2059) are open in your firewall: ufw status
  • Run systemctl status nginx to check if Nginx is running

SSL certificate not working

  • DNS must be pointing to your server first
  • Let's Encrypt requires port 80 to be accessible
  • Run certbot renew --dry-run to test certificate issuance

Nameservers not resolving

  • Verify glue records are registered at your domain registrar
  • Check BIND is running: systemctl status named
  • Test DNS: dig ns1.yourdomain.com

Email not sending/receiving

  • Ensure ports 25, 587, and 993 are open
  • Some cloud providers (AWS, GCP) block port 25 by default — submit a support request to unblock
  • Verify PTR (reverse DNS) record is set for your server IP with your hosting provider
  • Check SPF record: dig TXT yourdomain.com

Need Help?

If you encounter any issues during installation, our support team is ready to help: