Installing and Configuring Hestia Control Panel on Contabo VPS
In this hands-on video tutorial by BENTECH, viewers are guided step-by-step through setting up a free, open-source control panel (Hestia Control Panel) on an unmanaged VPS…
In this hands-on video tutorial by BENTECH, viewers are guided step-by-step through setting up a free, open-source control panel (Hestia Control Panel) on an unmanaged VPS instance. Using Contabo as the hosting provider example, the instructor demonstrates how to perform a clean OS reinstallation of Ubuntu 22.04 without default control panels to avoid licensing costs.
The lesson covers connecting to the remote virtual private server via SSH using the Windows Command Prompt, handling known host key conflicts, and generating the customized HestiaCP installation script. The instructor explains each installation flag, including options for Apache, PHP-FPM, MariaDB, and email services, before running the setup directly in the root shell.
Finally, the tutorial explores HestiaCP's user interface, demonstrating how to add web domains, set up email routing, configure databases, and manage static web assets through the integrated file manager. The instructor also demonstrates domain DNS routing using Cloudflare and Hostinger, and shows how to obtain and activate a free Let's Encrypt SSL certificate for seamless HTTPS redirection.
Section 1: Introduction to Free VPS Control Panels
Introduction to Free VPS Control Panels • VPS OS Reinstallation in Contabo Panel • Generating HestiaCP Install Script
Lesson 1.1: Introduction to Free VPS Control Panels
- Eliminates expensive monthly cPanel license fees
- Applicable across multiple unmanaged VPS providers
- Covers multi-domain management and SSL security
The instructor outlines the goal of the tutorial: setting up a completely free web control panel (HestiaCP) on an unmanaged Contabo VPS, enabling free SSL certificates via Cloudflare and Let's Encrypt, and hosting multiple domains.
Practical work
- Reproduce the demonstrated step for: Eliminates expensive monthly cPanel license fees and verify the result yourself.
Lesson 1.2: VPS OS Reinstallation in Contabo Panel
- Select clean OS installation (Ubuntu 22.04 64-bit)
- Choose 'Installation without panel' to save licensing costs
- Set root password and wait for the status to switch from pending to finished
To ensure a clean environment without conflicts from pre-installed software, the instructor logs into Contabo and reinstalls Ubuntu 22.04 LTS with the 'Installation without panel' option selected.
Practical work
- Reproduce the demonstrated step for: Select clean OS installation (Ubuntu 22.04 64-bit) and verify the result yourself.
Lesson 1.3: Generating HestiaCP Install Script
- Download script: `wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh`
- Configure services: Apache, PHP-FPM, MariaDB, Exim, Dovecot
- Omit internal BIND DNS server if using third-party DNS like Cloudflare
The instructor visits the official Hestia Control Panel website (hestiacp.com) to generate the custom installation script commands based on chosen stack components.
Practical work
- Run or reproduce this step, then verify the result: wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
Section 2: Connecting to the Server via SSH
Connecting to the Server via SSH • Executing HestiaCP Installation • Accessing HestiaCP Dashboard
Lesson 2.1: Connecting to the Server via SSH
- SSH into the server using `ssh root@<IP_ADDRESS>`
- Resolve host key verification errors using `ssh-keygen -R <IP_ADDRESS>`
- Accept fingerprint and enter server root password
The instructor copies the VPS IP address from the Contabo console and opens Windows Command Prompt. He resolves an SSH host key collision using `ssh-keygen -R` before logging in as root.
Practical work
- Run or reproduce this step, then verify the result: ssh-keygen -R 173.212.193.171
- Run or reproduce this step, then verify the result: ssh root@173.212.193.171
Lesson 2.2: Executing HestiaCP Installation
- Download installer script using `wget`
- Configure parameters including panel hostname and administrative credentials
- Confirm prompt with `y` and wait 10-15 minutes for installation to finish
The installation script is downloaded and executed in the root terminal. The instructor passes the generated parameters (hostname, username, email, and password) and confirms the package conflicts prompt.
Practical work
- Run or reproduce this step, then verify the result: wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
- Run or reproduce this step, then verify the result: bash hst-install.sh --hostname 'cpanel.arosoft.io' --username 'BenTech' --email 'bangella23@gmail.com' --password '***' --interactive no
Lesson 2.3: Accessing HestiaCP Dashboard
- Default port for HestiaCP is 8083 (`https://<IP_ADDRESS>:8083`)
- Bypass browser SSL warning under Advanced > Proceed
- Log in using the username and password set during installation
The instructor opens the browser to access the HestiaCP dashboard over port 8083 using the server's IP address. He bypasses the self-signed SSL warning and logs in with the configured admin credentials.
Practical work
- Reproduce the demonstrated step for: Default port for HestiaCP is 8083 (`https://<IP_ADDRESS>:8083`) and verify the result yourself.
Section 3: Exploring Features: Users, Web Domains, Mail, and Databases
Exploring Features: Users, Web Domains, Mail, and Databases • Configuring Cloudflare DNS & Nameservers • Enabling Let's Encrypt SSL in HestiaCP
Lesson 3.1: Exploring Features: Users, Web Domains, Mail, and Databases
- User roles: Administrator vs. standard user accounts
- Web domain addition with optional mail/DNS support
- Built-in mail client options such as Roundcube
- Integrated phpMyAdmin and MariaDB user/database creation
A walkthrough of core HestiaCP navigation tabs: managing user accounts and roles, adding new web domains, configuring mail domains with Roundcube, creating MySQL/MariaDB databases, and setting up Cron jobs.
Practical work
- Reproduce the demonstrated step for: User roles: Administrator vs. standard user accounts and verify the result yourself.
Lesson 3.2: Configuring Cloudflare DNS & Nameservers
- Add domain to Cloudflare and select free plan
- Scan and review existing DNS A records pointing to VPS IP
- Update nameservers in domain registrar (Hostinger) to point to Cloudflare
To resolve domain names properly, the instructor sets up the domain in Cloudflare, scans existing DNS records, and replaces the registrar nameservers on Hostinger with Cloudflare's assigned nameservers.
Practical work
- Reproduce the demonstrated step for: Add domain to Cloudflare and select free plan and verify the result yourself.
Lesson 3.3: Enabling Let's Encrypt SSL in HestiaCP
- Enable 'Enable SSL for this domain'
- Check 'Use Let's Encrypt to obtain SSL certificate'
- Enable automatic HTTPS redirection and HSTS if required
Once Cloudflare DNS is active, the instructor goes into HestiaCP web domain settings and enables Let's Encrypt SSL along with automatic HTTPS redirection.
Practical work
- Reproduce the demonstrated step for: Enable 'Enable SSL for this domain' and verify the result yourself.
Section 4: File Manager & Website Verification
File Manager & Website Verification
Lesson 4.1: File Manager & Website Verification
- Web directory path: `web/<domain>/public_html/`
- Direct code editing supported in HestiaCP web file manager
- Verified live website rendering over secure HTTPS connection
The instructor opens HestiaCP's built-in File Manager, locates the domain's public_html folder, edits the index.html file, and verifies that the live site loads securely over HTTPS with updated content.
Practical work
- Reproduce the demonstrated step for: Web directory path: `web/<domain>/public_html/` and verify the result yourself.