Guides 11792 Published by

The guide walks a reader through installing HestiaCP on a clean Ubuntu 20.04 system, starting with prerequisites such as a fresh install, root access, and an updated package list. It instructs the user to stop and disable any existing Apache or Nginx services before pulling the official installer script via curl, installing required packages like Python 3, Git, and utilities with apt. After running the downloaded install.sh with sudo, the script sets up nginx by default, creates an admin user, configures DNS and firewall rules, and outputs a randomly generated password that the reader must capture for first‑time login. The final parts of the article cover accessing the web UI over HTTPS, installing Let’s Encrypt certificates for the panel, troubleshooting common issues like port conflicts from leftover Apache configs, and providing quick fixes in a concise table.





Title: How to Install HestiaCP Control Panel on Ubuntu 20.04

If you’ve ever tried setting up a web server and felt like you’d rather be writing code than wrestling with configuration files, this is for you. In the next few minutes I’ll walk you through installing HestiaCP on a fresh Ubuntu 20.04 machine—no extra packages, no wasted time.

Prerequisites: Clean Slate Before You Start
  • Fresh install – I’ve seen people run into headaches when they try to install Hestia over an existing Apache or Nginx stack. Just wipe the web server directory (/etc/apache2 and /etc/nginx) if you’re starting from scratch.
  • Root privileges – All commands need sudo. If you’re on a VPS, you’ll likely be logged in as root already.
  • Update packages
  sudo apt update && sudo apt upgrade -y

This makes sure your system is up‑to‑date and prevents the “broken dependency” errors that pop up when installing Hestia’s dependencies.

Disable Existing Web Servers

If you’re reusing a machine, make sure no other service is listening on port 80 or 443:

sudo systemctl stop apache2 || true
sudo systemctl disable apache2 || true
sudo systemctl stop nginx || true
sudo systemctl disable nginx || true

I once had a user complain that Hestia wouldn’t start because Apache was still alive. Killing the old process before you install clears the way.

Install Dependencies

Hestia requires Python 3, Git and some utilities:

sudo apt install -y curl gnupg2 ca-certificates lsb-release python3 python3-pip git

The curl line pulls the Hestia installer script in a single shot later on.

Grab the Installer

Hestia’s official install script is self‑contained. Run:

curl -O https://raw.githubusercontent.com/hestiacp/hestiacp/master/install.sh

This downloads the latest installer into your current directory.

Launch the Install Script

The script asks a few questions—most of them have sensible defaults, so you can just hit Enter:

sudo bash install.sh

What the script does in plain language:

1. Installs the web server stack (nginx by default) and mail services.
2. Creates the admin user with a random password it prints out for you.
3. Configures DNS resolvers and firewall rules to allow HTTP/HTTPS access.

Grab Your Admin Password

After installation finishes, you’ll see something like:

HestiaCP install completed!
Admin password: Q9x7kJpX

Copy that. You’ll need it for the web UI. (If you lose it, run hestia passwd admin to reset.)

Access Hestia

Open a browser and go to:

https://your‑server‑ip/

Use the username admin and the password from step 6. The first time you log in, Hestia will prompt you to change that password—do it.

Secure Your Panel with SSL

Hestia can auto‑issue Let’s Encrypt certificates for your sites, but the control panel itself should also be behind HTTPS:

sudo certbot certonly --standalone -d hestiacp.yourdomain.com

Then point hestia.conf (usually in /etc/nginx/sites-available/hestia) to those cert files.

Common Pitfall: Old Apache Configs

If you get “port 80 already in use” after the install, check for lingering Apache configs:

sudo rm /etc/apache2/*.conf

Then restart Nginx with sudo systemctl restart nginx. I’ve seen this happen when people upgraded Ubuntu and kept old service files around.

Quick Fixes
Symptom Likely Cause Fix
“hestia: command not found” after install PATH not updated source /etc/hestia/vars.sh or reboot
Mail services won’t start Postfix config missing Run sudo hestia mail-config to regenerate

There you go—HestiaCP running on Ubuntu 20.04, ready for your domains and email accounts.