HestiaCP: free hosting control panel for your server | INTROSERV
EUR
european

EUR

usa

USD

English En
Ex. VAT Ex. VAT 0%

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.

Info

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.

Warning

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

Tip

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;
  • --username and --password: the login and password of the panel administrator;
  • --clamav no 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.

Warning

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.

Tip

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

Info

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.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • kingdom
  • germany
  • Español
  • French
  • Hrvatska
  • Italiano
  • Poland
  • Slovenski
  • ukraine
  • Türkçe
  • Русский
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA