One of the most challenging decisions going away from cPanel is the ability to visualise. When I shifted to the command line, it looked like an alien. Just for example if you want to install WordPress on a VM you will find plenty of videos and blogs explaining what to do. But none would tell you how to correct if something goes wrong. I was getting challenged by the same problems. Now, I see a solution for that called HestiaCP you just have to configure it once and it works just as you wanted.
Very easy to install, my requirement for a server is very basic, hosting + mail. For that, this works like a charm. I am using a basic VM (1CPU, 1GB RAM and 20GB disk), a domain and SendGrid for SMTP relay. Most of the cloud providers block port 25, but no worries just get a free account on any SMTP relay provider it will work just fine on this panel, just as a normal email works.
You first need to ssh as a root user on the VM and follow the below commands:
apt update
apt upgrade
wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
Before running another command go to your domain provider and create the hosts and point them to VM’s IP address and open the below ports on your VM.
For example my domain name is example.com and my public ip of my VM is 123.456.789.123 so I would create the following and point them to the IP address:
@.example.com
www.example.com
mail.example.com
webmail.example.com
host.example.com
On the VM open the blow ports;
22 80 443 8083 465 993 143 587 110 25
*port 25 is blocked my the most cloud providers but we only need it for incoming.
Once the above is done, now on the command line run the below command changing YOUR@EMAIL.ID, PASSWORD and YOUR.HOST.NAME for me is (host.example.com).
bash hst-install.sh –interactive no –email YOUR@EMAIL.ID –password PASSWORD –hostname YOUR.HOST.NAME -f
Once the setup is complete, on the web browser visit (host.example.com:8083). You enter the panel by username “admin” and the password you kept in the above command. Now, in the admin panel create a new user and then log-in as the new user. With the new user, you can Add Web Domain (example.com) and just below that there is also an option to Enable mail for this domain enable it.
Now, go to mail and enable DKIM, Enable SSL for this domain and SMTP Relay if you have SendGrid then fill in the SMTP relay details. (Host: smtp.sendgrid.net, Port: 587, Username: apikey, Password: (YOUR API PASSWORD from SendGrid) )
After completing the last thing is to click on the mail DNS record and you will find there are MX and TXT records that you need to add to your domain. Lastly, on the web browser visit (webmail.example.com).
Now you are done with the installation go play, install applications and use mail. Your site is working as it would be on the cPanel.