1. Blog
  2. Manuals

HestiaCP: Installing the Free Hosting Control Panel

HestiaCP: Installing the Free Hosting Control Panel

HestiaCP is a free, open-source hosting control panel, the successor to the VestaCP project. Through a web interface it manages sites, databases, mail, DNS and backups. It is a convenient choice when you need to host several sites on one VPS without configuring every service by hand.

What the panel includes

  • the Nginx web server on its own or in front of Apache, with several PHP versions side by side;
  • MariaDB, MySQL or PostgreSQL databases;
  • an Exim and Dovecot mail server with spam protection and webmail;
  • the Bind DNS server;
  • free Let’s Encrypt SSL certificates, including wildcards;
  • a file manager, scheduled backups and a firewall with Fail2Ban.

Requirements

  • a clean system with no web servers or databases installed: Debian 11, 12, 13 or Ubuntu 22.04, 24.04, 26.04 LTS;
  • 1 GB of RAM or more (4 GB or more with antivirus and antispam) and 10 GB of disk;
  • root access;
  • a fully qualified server name, for example panel.example.com, with an A record pointing to the server’s IP address.

Installation

Connect to the server over SSH as root and download the installer:

wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh

Run it with the defaults:

bash hst-install.sh

More often it is convenient to pass the server name, the administrator’s email and a password right away:

bash hst-install.sh --hostname panel.example.com --email admin@example.com --password 'a_strong_password'

The set of components is controlled with flags. For example, without the DNS server and antivirus — which saves a lot of memory:

bash hst-install.sh --hostname panel.example.com --email admin@example.com --named no --clamav no

bash hst-install.sh -h lists every available flag.

The installer shows the component list and asks for confirmation. Installation takes 10–15 minutes. At the end the panel address, login and password are printed — save them.

First login

The panel is available at:

https://panel.example.com:8083

If the password is lost, set a new one from the shell:

v-change-user-password admin 'new_password'

First steps

Create a separate user

The administrator account is for managing the server. Host sites under a regular user: Users → Add User.

Add a site

Log in as that user and open Web → Add Web Domain. Enter the domain — the panel creates the site directory, the web server configuration and the DNS zone. Site files go in /home/user/web/domain/public_html.

Enable SSL

In the domain settings tick Enable SSL for this domain and Use Let’s Encrypt to obtain SSL certificate. The certificate is issued and renewed automatically from then on.

Create a database and mail

Databases are created under DB, mail domains and mailboxes under Mail. To keep messages out of spam folders, set up DKIM and SPF records: see SPF, DKIM and DMARC in HestiaCP.

Managing from the shell

Everything the web interface does is also available on the command line — the commands start with v-:

v-list-users                         # list users
v-list-web-domains admin             # a user's sites
v-add-letsencrypt-domain admin example.com   # issue SSL for a site
v-backup-user admin                  # create a backup
v-update-sys-hestia-all              # update the panel

Security

  • Open the panel port 8083 only to your own IP addresses: Server → Firewall.
  • Enable two-factor authentication in the user profile.
  • Regularly export backups off the server, for example to backup storage.
  • Protect SSH access as well: see changing the SSH port and Fail2Ban.