Vesta Control Panel is an open source software to host your websites. When you are tired of using command line for making any changes to your hosting or you want to work instantly and faster, VestaCP is best option. Most of the web hosting software are expensive. You can only afford them if you are running a web hosting selling business, otherwise, for personal use, I won’t recommend to use any paid hosting control panel software. VestaCP is available for using free and for personal use, it is one of the best options available to you.
VestaCP allows you to manage your websites, ftp accounts, databases, email and DNS settings. The web interface of VestaCP is developed in PHP and JS. Vesta Open API is used for CLI calls. Vesta Open API has 381 commands available in console. Vesta core has been written in bash which is native programming language in Linux operating system.
VestaCP is open source, hence, you can change, update and redistribute the code under GPL GNU General Public License Version 3.
VestaCP supports multilingual web-interface. You can make firewall settings for iptables and fail2ban. You can host Apache + NGINX, Apache and NGINX + php-fpm. For email, SpamAssasin, ClamAV, Dovecot and Exim are available. For database administration, phpMyAdmin is available for MySQL and phpPgAdmin is available for PostgreSQL.
VestaCP does not support all operating systems. Currently, it supports RHEL, CentOS, Debian and Ubuntu.
In this tutorial, I will be using Alibaba Cloud Elastic Compute Service (ECS) with Ubuntu CentOS installed on it; however, the installation steps would vary according to the choice of operating system.
Following are the minimal requirements for installing VestaCP on your server. If you need to host more number of websites, manage your hardware requirements according to your usage.
- You will need 1 core processor.
- You will need 512 MB RAM. I will recommend to use 1 GB.
- You will need 20 GB HDD hard disk. Alibaba cloud offers HDD hard disk as well as SSD hard disk. You can use any of them as per your choice.
- A registered domain name and VPS.
- You should setup your VPS’s hostname.
- Login as root user.
Update CentOS System:
Before proceeding with installation of any kind of package, use the following command to update your Ubuntu system. To execute this command, remember to login from non-root user with sudo privileges. After execution of this command, you will be prompted to Is this ok? Type ‘y’ and hit Enter key.
# yum update
You have 2 ways to install VestaCP.
For basic installation follow the steps below:
- Open https://vestacp.com/install/ . This link will open the installation page of VestaCP official website. Scroll down and find the heading Install Instructions. Execute the following commands to install VestaCP.
For downloading installation script:
# curl -O
# bash vst-install.sh
- You will be prompted to the following screen. Type y and hit enter key.
- Now you will be asked to enter an email address.
- Now enter hostname (Fully Qualified Domain Name).
- Now, wait for 15 minutes. VestaCP usually takes 15 minutes for installation on HDD and 5-6 minutes on SSD.
Advanced Installation Settings:
Skip this section if you have followed basic installation steps above.
For generating advanced installation command follow the steps below:
- Open https://vestacp.com/install/ . This link will open the installation page of VestaCP official website. Scroll down and find the heading Advance install settings.
- Choose web settings. You can choose only one of the options below.
- Nginx + apache
- Nginx + php-fpm
- Choose FTP settings. You can choose only one options from the list below.
- Choose Mail settings. You can choose only one options from the list below.
- Exim + dovecot + spamassassin + clamav
- Exim + dovecot + spamassassin
- Exim + dovecot + clamav
- Exim + dovecot
- Choose DNS. You can choose only one option from the list below.
- Choose firewall settings. You can choose only one option from the list below.
- iptables + fail2ban
- Choose do you want to install Softaculous or not? Softaculous installer allows to you install your required CMS like WordPress, Joomla, Drupal, AbanteCart, PrestaShop, phpBB, WHMCS, MyBB, Open Real Estate, Dolphin and much more, easily on your host. You can choose only one option from the list below.
- Choose other settings and select your database. You can either choose one database or both.
- Set your hostname.
- Setup email and password for logging in your VestaCP as admin.
- Click Generate Install Command and use this command for installation of VestaCP.
- Now commands will be generated for you. You can see the following screen showing you the commands for installation of VestaCP.
# curl -O
# bash vst-install.sh --nginx yes --apache yes --phpfpm no --named yes --remi yes --vsftpd yes --proftpd no --iptables yes --fail2ban yes --quota yes --exim yes --dovecot yes --spamassassin yes --clamav yes --softaculous yes --mysql yes --postgresql yes --hostname imarslan --email email@example.com --password 654321Ab
Now your VestaCP is ready to be accessed via IP address or domain name.
As you can’t install SSL certificate to IP address, on accessing VestaCP via IP Address, you will see the following warning. Click Advance and then click proceed.
Here you will be redirected to login url of VestaCP.
Use your login credentials, you will be redirected to VestaCP dashboard.
Let’s install Git
For installation of Let’s Encrypt SSL certificate, you will need to install Git to fetch Let’s Encrypt form official GitHub Repository. I will use /opt/letsen directory for this purpose.
Execute the following command to install git.
# yum install git
Install SSL certificate for your VestaCP installation:
To allow https to your VestaCP, you will need to install SSL certificate. For free SSL certificate, I will use Let’s Encrypt SSL. Follow the steps below to install Let’s Encrypt SSL Certificate.
Execute the following command to fetch and clone Let’s Encrypt.
# git clone https://github.com/letsencrypt/letsencrypt /opt/letsen
Navigate to directory /opt/letsen by using the following command.
# cd /opt/letsen
Before asking for issuance of SSL, you will need to stop your apache and nginx server because issuance of certificate will utilize port 80.
To do so, execute the following commands.
# service nginx stop
# systemctl stop httpd
Execute the following command to install SSL certificate on your domain.
# sudo -H ./letsencrypt-auto certonly --standalone -d softpedia.xyz -d www.softpedia.xyz
Accept the terms and conditions and proceed.
Confirm or verify the installation of your SSL certificate by executing the following command.
# ./certbot-auto certificates
After successful issuance of SSL certificate, you will need to start nginx and apache server again by using the commands below.
# service nginx start
# systemctl start httpd
Here you go, now you can access your VestaCP using https. Thanks!