How to install HestiaCP control panel on a server
HestiaCP is a free open source control panel for Linux servers. It lets you manage websites, databases, mail, DNS, SSL certificates and backups from a web interface instead of the command line. This guide shows how to install HestiaCP on a clean server, log in for the first time and add your first website.
HestiaCP is a maintained fork of VestaCP. VestaCP is no longer developed and installs only on operating systems that have reached end of life, so HestiaCP is the recommended choice for new servers. INTROSERV offers HestiaCP as a free control panel when you order a VPS or a dedicated server.
Requirements
Operating system
HestiaCP installs only on a clean server with a supported 64-bit operating system: Debian 12 or 13, Ubuntu 22.04, 24.04 or 26.04 LTS. Supported architectures are AMD64 (x86_64) and ARM64 (aarch64); 32-bit systems and ARM7 are not supported. Non-LTS Ubuntu releases and RHEL-based systems such as AlmaLinux and Rocky Linux are not supported. Check the current list in the official documentation before you start.
Install HestiaCP only on a freshly installed system. The installer configures the web server, database, mail and DNS services itself. It checks for conflicting packages such as Nginx, Apache, MariaDB or MySQL, Exim, Postfix and ufw and does not continue until they are removed. If the server already hosts sites, move them to a new server with HestiaCP instead.
Server resources
The minimum is 1 CPU core, 1 GB of RAM and 10 GB of disk space, without the antivirus (ClamAV) and the spam filter (SpamAssassin). The developers recommend 4 cores, 4 GB of RAM and a 40 GB SSD. On servers with less than 4 GB of RAM, install HestiaCP without ClamAV and SpamAssassin.
Hostname and access
You need root access over SSH and a hostname for the server in the form of a fully qualified domain name, for example panel.example.com. The hostname should resolve to the server IP address if you want to issue a Let's Encrypt certificate for the panel later.
Prepare the server
Connect to the server over SSH as root and refresh the package lists:
apt update
If you usually update packages before installing server software, run apt -y upgrade now and reboot the server if a new kernel was installed.
Remove ufw
Many cloud images of Ubuntu come with the ufw firewall preinstalled. The HestiaCP installer refuses to continue if ufw is present, because HestiaCP uses its own iptables-based firewall. Check whether ufw is installed:
dpkg -l ufw
If the package is listed with the status ii, remove it:
apt-get purge -y ufw
Removing ufw does not close your SSH session. After the installation, firewall rules are managed in the HestiaCP firewall settings.
Install HestiaCP
Download the installer
Download the official installation script:
wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
To see all available options, run:
bash hst-install.sh -h
Run the installation
The installer can ask questions interactively, but a non-interactive run with explicit options is more predictable. Replace the hostname, email and password with your own values:
bash hst-install.sh --interactive no --hostname panel.example.com --email [email protected] --username hestiaadmin --password 'YourStrongPassword' --clamav no --spamassassin no
The options mean:
--interactive no: runs the installation without questions;--hostname: the fully qualified hostname of the server;--email: the administrator address for system notifications;--usernameand--password: the login and password of the panel administrator;--clamavno and--spamassassin no: skip the antivirus and the spam filter to save memory. Leave these options out if the server has 4 GB of RAM or more and you need full mail filtering.
In our test on Ubuntu 24.04, a non-interactive installation without --username stopped and waited for the administrator username. To avoid this, always specify --username when running the installer with --interactive no.
By default, the installer sets up Nginx in front of Apache, PHP-FPM, MariaDB, Exim and Dovecot for mail, BIND for DNS, vsftpd for FTP, and iptables with Fail2Ban for protection.
The installation takes 10 to 20 minutes, depending on the server speed. At the end, the installer prints the panel address and the administrator login. Reboot the server when the installer asks you to:
reboot
Check that the panel is running
After the reboot, check that the panel listens on port 8083:
ss -lntp | grep 8083
The output should show a process listening on port 8083.
Log in to the panel
Open the panel in a browser:
https://203.0.113.10:8083
Replace 203.0.113.10 with your server IP address. The panel uses a self-signed certificate after installation, so the browser shows a security warning. Click Advanced and continue to the site.

Enter the administrator username, click Next, then enter the password and click Login.

To replace the self-signed certificate of the panel with a trusted one, make sure the hostname resolves to the server and run v-add-letsencrypt-host on the server.
Add your first website
Hosting websites under the admin account is not recommended. Create a separate user for your sites under Users → Add User and log in as this user to add domains. The panel shows a warning if you add a site as admin.
Create a user
Go to Users and click Add User. Enter the username, contact name, email and password and click Save. All four fields are required. To generate a strong password, click the arrows icon next to Password.

Add a web domain
Log in as the new user. The quickest way is the Log in as link in the message that appears after the user is created. You can also select the user in the Users list and click Log in as. Go to Web and click Add Web Domain. Enter the domain name, for example example.com, and click Save. HestiaCP adds www.example.com as an alias automatically.

The domain appears in the Web list. Its files are stored in /home/USERNAME/web/example.com/public_html, where USERNAME is the owner of the domain. Upload your site there over SFTP or with the file manager in the panel.

To make the site work, point the domain and its www alias to the server IP address. If DNS is managed outside HestiaCP, create the A records at your DNS provider.
What's next
After the site is added, enable HTTPS for it. See How to install an SSL certificate in HestiaCP for Let's Encrypt and purchased certificates.
Troubleshooting
The installer stops because of ufw
The installer reports a conflict with the ufw package. Remove ufw as described in the server preparation section and run the installer again.
The installation seems to hang
In our Ubuntu 24.04 test, a non-interactive installation without --username stopped and waited for the administrator name. Press Ctrl+C and run the installer again with all the options shown above. If the installer was interrupted after it started changing the system, reinstall the operating system before the next attempt: HestiaCP is designed for installation on a fresh system.
The panel does not open in the browser
Check that the panel service is running and that port 8083 is open:
systemctl status hestia ss -lntp | grep 8083
If the service runs, check that your provider or an external firewall does not block port 8083.