Setup guides

Install HestiaCP and publish your first HTTPS website

Go from a clean Debian server to a separate website account with the right PHP version, a certificate and a recovery plan.

6 min read
Hosting hub with web, mail and database modules

Start HestiaCP with a disposable test website before moving customer data. This example uses a clean Debian 12 server and root access.

1. Choose services

The documented 1 GB memory minimum excludes SpamAssassin and ClamAV; the recommended baseline is 4 GB RAM and 40 GB SSD. Confirm current distribution support in Getting Started.

Decide whether email and DNS will run locally. Use the official installation builder for custom component choices. The commands below start the default interactive installation.

2. Prepare the machine

bashsudo -i
apt update
apt upgrade -y
apt install -y wget ca-certificates
hostnamectl set-hostname panel.example.com

Replace the hostname, point its A record at the server and complete any required reboot.

3. Run the installer

bashwget -O /root/hst-install.sh https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
bash /root/hst-install.sh

Enter the contact address and account details. Store the final login information securely. Restrict the management interface, normally on 8083, to your administrative IP. Public website traffic uses different ports.

4. Create a website user

Reserve the admin account for server maintenance. Create a normal user, then add the domain from its Web section. Update records at the authoritative DNS provider; a local zone alone does not change public DNS.

Select a compatible PHP version and the correct document root. The web domain guide also documents Quick install App and certificate options.

5. Validate HTTPS and application behavior

Enable SSL and Let’s Encrypt for the domain. Turn on HTTPS redirection after certificate issuance:

bashcurl -I http://site.example.com
curl -I https://site.example.com

Test sign-in, uploads and a database write too. A successful home page response is only one part of acceptance.

If TLS issuance fails, compare A and AAAA records. If the application fails, inspect its PHP version, extensions, root directory and error log. Avoid changing every permission to 777 to mask an ownership problem.

6. Establish recovery

Export the first user backup and copy it off the machine. Restore a test file and database into a separate account before trusting the schedule. Continue with the PHP upgrade guide and backup strategy.