How to Install a Free Control Panel (HestiaCP) on Ubuntu
To install HestiaCP, a free open-source hosting control panel, start with a fresh Ubuntu 22.04 or 24.04 server that has root access, at least 2 GB of RAM and a fully qualified hostname. Download the official installer with wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh, run it with bash hst-install.sh, then log in at https://your-server-ip:8083. This guide covers the recommended installer options, creating your first user and website, enabling free Let's Encrypt SSL, and where HestiaCP stores backups.
Is a free control panel enough, or do I need cPanel?
HestiaCP is usually enough when you host your own websites or a small number of client sites and are comfortable doing basic server administration. It includes:
- Nginx as a reverse proxy in front of Apache, or Nginx with PHP-FPM only
- Several PHP versions that you can select per domain
- Free Let's Encrypt SSL with automatic renewal
- Mail (Exim, Dovecot, Roundcube), DNS (BIND), MariaDB, and FTP
- Scheduled per-user backups, with optional remote backup targets
cPanel/WHM is a better choice if you resell hosting, need tools such as JetBackup or Softaculous, or want a panel your clients already know. cPanel requires a paid licence, and on a Cloudesta server you request that licence by opening a support ticket. If you would rather not manage a server at all, shared cPanel hosting gives you the panel without any server maintenance.
Prerequisites
- A freshly installed Ubuntu 22.04 or 24.04 server with no Apache, Nginx, MySQL or other panel already present. A Cloud VPS or dedicated server works well.
- At least 2 GB of RAM (4 GB if you want the ClamAV antivirus) and 20 GB or more of free disk space.
- Root SSH access.
- A hostname such as
server.example.com, with a DNS A record pointing to your server IP (for example203.0.113.10). - Open ports: 22 (SSH), 80/443 (web), 8083 (panel), 21 and 12000-12100 (FTP), 25/465/587 (SMTP), 143/993 and 110/995 (IMAP/POP3), and 53 TCP/UDP if you run your own DNS.
1. How do I prepare Ubuntu for HestiaCP?
Log in over SSH, switch to root, and update the system:
ssh root@203.0.113.10
apt update && apt -y upgrade
hostnamectl set-hostname server.example.com
hostname -f
Use a hostname that is a subdomain, such as server.example.com, rather than a domain you plan to host as a website. HestiaCP manages its own iptables firewall, so make sure UFW is not active:
ufw status
ufw disable
2. How do I run the HestiaCP installer?
The installation takes 10 to 20 minutes. Run it inside tmux so that a dropped SSH connection does not interrupt it:
tmux new -s hestia
wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
bash hst-install.sh --help
The --help output lists every available option. On a 2 GB server, a sensible starting point is Nginx with Apache, multiple PHP versions, and ClamAV turned off to save memory:
bash hst-install.sh \
--apache yes --phpfpm yes --multiphp yes \
--clamav no --spamassassin yes --fail2ban yes \
--hostname server.example.com \
--email admin@example.com \
--username hstadmin \
--password 'yourpassword'
Adjust these options to suit your needs:
- Use
--apache nofor a lighter Nginx + PHP-FPM stack. Note that.htaccessrules will then not work. - Use
--exim no --dovecot noif your email is hosted elsewhere, for example on business email. - Use
--named noif your DNS stays at your registrar or with another DNS provider.
If you leave out --password, the installer generates a password, shows it at the end, and emails it to you. Passing it on the command line saves it in your shell history. When the installer finishes, confirm the summary and reboot:
reboot
3. How do I log in to HestiaCP the first time?
Open https://server.example.com:8083 or https://203.0.113.10:8083 in your browser. The panel starts with a self-signed certificate, so your browser will show a warning that you need to accept. Log in with the admin username and password you chose during installation. To replace the self-signed certificate with a valid one for the hostname, run this command once DNS has propagated:
/usr/local/hestia/bin/v-add-letsencrypt-host
4. How do I add a user and a website?
Use the admin account only to manage the server, and host websites under a regular user. In the panel, open the Users tab, click Add User, and fill in the username, email, password and package. Then log in as that user (or use the login-as icon next to the user) and go to Web → Add Web Domain. Enter example.com and tick the DNS and mail options if this server handles them. You can do the same from SSH:
/usr/local/hestia/bin/v-add-user webuser 'yourpassword' you@example.com
/usr/local/hestia/bin/v-add-web-domain webuser example.com
Upload your site files to /home/webuser/web/example.com/public_html/. Then point the domain's A records for example.com and www.example.com to 203.0.113.10.
5. How do I enable free Let's Encrypt SSL?
Once the domain resolves to your server, go to Web, edit the domain, and tick Enable SSL for this domain, then Use Let's Encrypt to obtain SSL certificate. Optionally tick Enable automatic HTTPS redirection, then save. From SSH, the equivalent command is:
/usr/local/hestia/bin/v-add-letsencrypt-domain webuser example.com www.example.com
HestiaCP renews the certificate automatically through its own cron jobs.
6. Where does HestiaCP store backups?
HestiaCP creates a nightly backup for each user, containing web files, databases, mail and DNS, as a .tar file in /backup. The user's package controls how many copies are kept. To create and list backups manually:
/usr/local/hestia/bin/v-backup-user webuser
/usr/local/hestia/bin/v-list-user-backups webuser
ls -lh /backup
/backup folder sits on the same disk as your sites, so it does not protect you if the server itself fails. Set up a remote target (SFTP, FTP, Backblaze B2 or rclone) under Server Settings → Configure → Backups.What about CyberPanel as a LiteSpeed alternative?
CyberPanel is another free panel. It is built on OpenLiteSpeed and has built-in LSCache, which makes it attractive for WordPress-heavy sites. It also supports Ubuntu 22.04 and 24.04. Choose either CyberPanel or HestiaCP; never install two panels on the same server. If you want commercial LiteSpeed without managing a server yourself, Cloudesta shared hosting already runs it.
Verify it works
Run these checks to confirm the panel and your site are working:
systemctl status hestia --no-pager
/usr/local/hestia/bin/v-list-sys-services
ss -tlnp | grep -E ':(80|443|8083) '
curl -I https://example.com
Everything is working if all services show as running, port 8083 is listening, and curl returns an HTTP 200 (or a 301 redirect) over HTTPS without certificate errors.
Common problems
- Installer stops with "existing installation detected" or a package conflict. The server is not clean. Back up your data and request an OS reinstall by support ticket. Avoid
--forceunless you know exactly what it will overwrite. - The panel at :8083 does not load. Make sure you are using
https://, checksystemctl status hestia, and confirm that UFW is disabled and port 8083 is not blocked by an external firewall. - Let's Encrypt fails. The domain's A record (and any AAAA record) must point to this server, and port 80 must be reachable. Check DNS with
dig +short example.com, then retry. Logs are kept in/var/log/hestia/. - Sent mail goes to spam or bounces. Add the SPF, DKIM and DMARC records shown under the mail domain's DNS settings. Reverse DNS (rDNS) must match your hostname, and only Cloudesta can set it, so request it by support ticket.
- Services crash or the server runs out of memory. Add swap, avoid enabling ClamAV on 2 GB servers, or request a plan upgrade by ticket.
Frequently asked questions
Is HestiaCP really free?
Yes. HestiaCP is open-source software released under the GPLv3 licence, with no licence fees and no limit on the number of accounts.
Can I install HestiaCP on shared hosting?
No. HestiaCP needs root access to a dedicated operating system, so it must run on a VPS or dedicated server.
Can I install HestiaCP on a server that already runs websites?
This is not recommended, because the installer expects a clean Ubuntu system. Back up your sites, reinstall the OS, install HestiaCP, and then restore your sites into it.
Need help? Open a ticket at https://cloudesta.com/submitticket.php for OS reinstalls, rDNS, or plan upgrades.