How to install VestaCP (cPanel alternative) on your server
VestaCP is another open source hosting control panel that provides a set of features to manage domains, DNS, mail, databases, cron jobs, backups and much more. Compared with other control panels, it’s a very lightweight web hosting control panel that runs smoothly even with very low system specifications.
In this article, We will look at how to install VestaCP and configure its various services in Ubuntu 16.04.
- You will require a fresh Ubuntu 16.04 machine with at least 1 GB of RAM.
- A valid DNS name pointing its A record to the IP address of your Ubuntu machine.
Save 90% on cloud hosting vs Digital Ocean, Vultr & Linode!
Kick off the new year with high-performance cloud hosting for unheard of prices. Get 32GB RAM + 320GB of high-speed SSD storage starting at just $99 per year!
To change the hostname of your system, use the
hostnamectl will directly update the kernel about the change in the hostname, and you don’t need to reboot the machine afterward.
$ sudo hostnamectl set-hostname dwijadasdey
Next, edit the file
/etc/hosts and add the following line at the end. The format is
IP_ADDRESS HOSTNAME.TLD HOSTNAME. This is an example using a domain of mine and a fake IP.
$ sudo vi /etc/hosts 123.456.78.9 dwijadasdey.tk dwijadasdey
Run the command below to restart the network manager and apply these changes:
$ sudo systemctl restart networking
Check the hostname and FQDN of the host:
$ hostname dwijadasdey $ hostname -f dwijadasdey.tk
Now that your FQDN has been set let’s proceed toward the process of installing VestaCP in detail.
Make sure all the packages in the system are up-to-date by issuing the following commands in the terminal:
$ sudo apt-get update $ sudo apt-get upgrade
Next, download the Vesta Control panel install script with the following command and make it executable:
$ curl -O http://vestacp.com/pub/vst-install.sh $ sudo chmod u+x vst-install.sh
VestaCP provides an intuitive way to generate the install command. Visit http://vestacp.com/install/, scroll down the page a little bit, and find the Advanced Install Settings section.
Now, judiciously choose the advanced install settings according to your requirements.
- For Web options, choose
nginx + apacheif you plan to use a reverse proxy at a later stage.
namedin the DNS section if you want a DNS server, too. Otherwise, choose
- If you want an extra repository for packages, then select
- Type in the FQDN that we configured in Step 1.
- VestaCP does not provide a file system browser of its own, so choose either
proftpdas a FTP server for easy file upload and download.
- Next is the firewall. You can choose whether to use
iptablesonly, or no firewall at all. It is advisable to use at least one of the options for a secure system.
- If you are going to use VestaCP as Shared Web Hosting service then choose
File System Quota, to
yes. Otherwise, choose
- Provide your email.
- For the email server, choose
Exim + dovecot + SpamAssassin + ClamAV. SpamAssassin will protect the email server from spam. ClamAV will mitigate virus activity in your server but the CPU load on the server will increase significantly.
- It is always better to choose Softaculous option to
yes. This auto-installer will make your life easier by installing scripts in your server with a click.
- Choose a database from MySQL or PostgreSQL.
- Finally, choose a password.
After selecting the options that suit you, click the
Generate Install Command button. It will generate installation command for you like below:
Finally, run the install command that you have generated above in the terminal.
$ bash vst-install.sh --nginx yes --apache yes --phpfpm no --named yes --remi no --vsftpd yes --proftpd no --iptables yes --fail2ban yes --quota no --exim yes --dovecot yes --spamassassin yes --clamav yes --softaculous yes --mysql yes --postgresql no --hostname dwijadasdey.tk --email youremail.com --password Passw0rd!
VestaCP will show you the components it will install. Press ‘Y’ to continue.
_| _| _|_|_|_| _|_|_| _|_|_|_|_| _|_| _| _| _| _| _| _| _| _| _| _|_|_| _|_| _| _|_|_|_| _| _| _| _| _| _| _| _| _|_|_|_| _|_|_| _| _| _| Vesta Control Panel Following software will be installed on your system: - Nginx Web Server - Apache Web Server (as backend) - Bind DNS Server - Exim mail server + Antivirus Antispam - Dovecot POP3/IMAP Server - MySQL Database Server - Vsftpd FTP Server - Softaculous Plugin - Iptables Firewall + Fail2Ban Would you like to continue [y/n]: y
Installation of the above components should take no more than 10 minutes. Once the installation completes successfully, VestaCP will provide you a link, username, and password to login to the panel. VestaCP will also send login details to the email address that you mentioned in the generation of install command earlier.
Congratulations, you have just successfully installed Vesta Control Panel https://HOSTNAME.DOMAIN:8083 username: admin password: Passw0rd! We hope that you enjoy your installation of Vesta. Please feel free to contact us anytime if you have any questions. Thank you. -- Sincerely yours vestacp.com team
Now that you have successfully installed VestaCP in your Ubuntu 16 server, Login to the control panel using the URL
https://HOSTNAME.DOMAIN:8083 and credentials provided by VestaCP at the end of the installation. The browser will warn you about the self-signed certificate—you can safely add it to your exception list and proceed with logging to VestaCP.
Once logged in successfully, the first thing you want to do is change the admin password. Click the
admin link at the top right corner of the dashboard. You can also change other settings through this page.
To view the services that are installed on the server, click the server link from the menu bar (extreme right). All the services will be listed, with the first one being the VestaCP server itself. Hover the mouse over it to restart or configure VestaCP. You can configure, stop, and restart the rest of the services after hovering the mouse over them.
To configure the firewall, click the
firewall link from the menu. All the firewall rules created during install time will be listed. You can edit, delete, or suspend them according to your requirements. To add new rules, click the green plus icon and then choose the action, protocol, and port to add it. You will see a confirmation that a new rule was added successfully.
Remember how we selected
named as part of VestaCP installation in step 1? We chose that option because we want to create private child nameservers for our VestaCP installation. Nameservers are servers with specialized DNS software installed and are used to handle queries regarding the services running under a given domain name.
By using child nameservers, you’ll have more control over the services you start using VestaCP later on.
First, you need to register your chosen domain name through any domain name registrar, if you haven’t already. SSD Nodes provides domain registration and domain management service at ease through an easy-to-use interface, but you can choose any registrar.
Once you’ve registered your domain, you need to manage your domain’s DNS settings. More specifically, you need to change which nameservers the domain points to. Please refer to your domain registrar’s documentation or help for more information on the specific procedure for their interface.
No matter which domain registrar you choose, you must change the nameserver settings to point to your domain. Add two nameservers—
TLD with your own.
As an example, in the image above, I registered the domain
dwijadasdey.tk and added two nameservers
Now, head back to your VestaCP installation. Click the
User link, hover your mouse over
Admin/System Administrator and click
edit. Scroll down to change the default nameservers to
NS2.DOMAIN.TLD, and then click
Save to complete nameserver configuration. In my case, I changed the defaults to
To add a new domain, click
Web from the menu, followed by green plus symbol. Type in the domain name you want to use, plus any subdomains. In my case, I’m using
From the IP address drop-down, select the IP of your VPS. Under the advanced options, provide an alias of the domain (e.g.
www.vps.dwijadasdey.tk), enable SSL support, and choose either
awstats for your web statistics. Under the SSL support option, enable Let’s Encrypt if you aren’t going to use a paid SSL certificated, which is an option available to you.
You can now add your domain by clicking the
Add button at the end of the page.
There will be a confirmation message that your domain was created successfully.
Head over to DNS page and click the edit button over the domain you have just created. Change the template for the BIND9 option to
child-ns and SOA to your nameserver (
NS1.DOMAIN.TLD) and save it.
Open up your browser of choice and visit the domain you just created. I’m visiting
vps.dwijadasdey.tk. You’ll be greeted by the VestaCP welcome page. Congratulations! You’re all set up with VestaCP.
You might be interested in installing Softaculous on top of VestaCP so that you can have access to one-click installs for more than 400 apps and services. Check out the Softaculous documentation for more information.
Now’s a good time to read the VestaCP documentation as well for more customization options. Enjoy the terminal-free experience!