Note: If you plan on providing free or paid hosting, don't use this method. Even though it offers an extension ACL (access control list) where you can disable features like databases, and allows you to create packages. You can't really limit disk space per ACCOUNT, only per WEBSITE (hence the packages). The only thing you can limit is FEATURES and # or websites. 2 great alternatives are Virtualmin and CentOS Web Panel (Virtualmin is easier to use, but CWP offers the closest you can get to cPanel in terms of features for free). Another problem is that you can't disable SSH access which could be a security problem.
I have seen in the forums that a lot of people are interested in getting a VPS. VPS is AWESOME, it is inexpensive, high performing, and has no limits (I mean if you host a ton of high traffic websites on 1 small server, it does slow down, however there are no hard limits) besides storage.
The problem however (there has to be a catch or else why are there so many people using shared servers) is that it is a bit hard to manage especially for beginners. Everything (or almost everything) is done via command line.
If you want to install MySQL/MariaDB, you will need to run a command. If you want to install Apache or Nginx, you will need to do it via command line. Anything else would require editing configuration files and etc.
Well now that won't be a problem, thanks to this wonderful opensource control panel CYBERPANEL.
Now you may be wondering. Why Cyberpanel?????
I love Cyberpanel because it not only offers one of the best GUI (Hestia and Vestcp can be a little confusing) but it has amazing speed and performance.
The reason for that is because it uses Openlitespeed. Litespeed Webserver is fairly new being released first in 2003 similar to Nginx (Apache was 1995 and Nginx was 2004). It used to be paid, however with the new addition Openlitespeed (in 2013) normal people can use it for free. Thing that sets it apart is that you still get the speed and performance of Nginx, but with feature only available to Apache (like .htaccess). Another advantage is that it offers HTTP/3 with Quic which speed up your site and optimizes images. Last thing is if you use: WordPress, Joomla, Drupal, Prestashop, Magento (etc.), you can use their famous LSCache Plugin to get SERVER SIDE (not the slow client side) cache for 100% free (they don't have paid plans to upsell you). The only problem is that the free version (OLS) does require a webserver restart after editing .htaccess. If you want an enterprise solution, you can upgrade to enterprise for free (up to 1 domain and 2GB of memory) or pay a monthly fee, here are the advantages:https://www.litespeedtech.com/products/litespeed-web-server/editions.
The GUI or Cyberpanel looks like this:
Here you can manage things like websites, databases, SSH access, security tools, PHP, FTP, SSL, Backups etc. I will go through it later.
A VPS/Dedicated Server running either:
Ubuntu 20.04 (recommended)
Python 3+. It should already be installed automatically in Ubuntu. Run this command to check:
10GB Disk Space (I know it seems like a lot, however they use the latest technology so your website would still run really fast)
To install Cyberpanel, you would first need to SSH/login into your server. You can do this by following the tutorial Heliohost made or by running
in your command line/terminal.
Then run this command to start the installation script:
sh <(curl https://cyberpanel.net/install.sh || wget -O - https://cyberpanel.net/install.sh)
Then it will as you some questions:
Select 1. Openlitespeed. Only choose Litespeed Enterprise if you already have your license key ready to paste into the command line. You can always change it later.
When it asks to install the Full service enter Y for yes. You can always install it later, but it is easier to install it now. Only select n if you are POSITIVE, that you don't need a DNS server, a Mail server, or an FTPd server.
It will then ask if you want ONLY (key word only) Remote MYSQL. Select n unless you REALLY NEED remote MySQL. You can't change this later.
Then click on enter to install the latest version of Cyberpanel
I recommend doing either the default 123456 or random password. You can always change the password later in Users < Modify user
It will ask you to install Memcached extension and then ask you to install Redis extension. They offer object cache so your database can run faster. You can either choose one of them (Redis is newer and offers more features than Memcache) or both and choose either one for every website
Now it will ask if you want to install Watchdog. Watchdog is great for small websites and beginners since it automatically fixes issues with servers. Like run scripts to fix errors or restart the server if CPU is overloaded. However it is still in beta, so it isn't the best thing to install for production sites. You can kill the watchdog process by running watchdog kill in the terminal after.
When the installation is finished, make sure to copy the contents starting from the line of #s to a notepad (it contains login details). If you did manage to forget the password (the default username is admin) just run this command (making sure to replace yournewpassword with your new password):
You can then log into your control panel at: youripaddress:8090 or yourdomain.com:8090 (if you pointed your domain to your IP address).
Creating a Website AKA cPanel Account:
The reason why I said AKA cPanel account is because a website is similar to a cPanel account. Normally most people think of a website as a domain. However in Cyberpanel, they think of a website as a website container. There you can add domains and subdomains. Like I said in the beginning, you can only limit storage/diskspace for websites, so you can try to make it work by limiting only 1 website per user. The only problem I saw so far is that you can only upload one custom SSL per website container (though you can get unlimited free Let's Encrypt SSL that renews automatically) and the fact that a subdomain is also going to be in a subdirectory (like docs.yourdomain.com and yourdomain.com/docs).
First go to Packages and modify the default package (you can also create a new one if you want) to your liking. Then go to Websites < Create Website and enter in your details. I recommend checking every box. If you didn't check open_basedir, you can always do so in the manage website section. If you didn't check DKIM support you can always generate them in Mail < DKIM manager. If you didn't check SSL, you can either upload a custom SSL to the manage website section or click on SSL < Manage SSL. If you didn't check Mail Domain don't worry, I don't really think it does really anything much.
When you are done, go to Websites < List Website and click on Manage on your website. Here is what it should look like:
Here you can manage website files, git, redirects, SSL, one click installs, SSH access, stress test etc. You can open up file manager and upload your website files or install WordPress with one click.
Now Cyberpanel not only offers website management, but also an email server. To set it up, you would need to have the proper spf and dkim records configured on your domain. I recommend using either Cyberpanel DNS or Cloudflare (I will show you how to do it manually with another DNS provider later).
To set up Cyberpanel DNS, go to DNS < Create Nameservers, follow the instructions. Then go to your domain registrar and go to setup glue records (if you need help, specify your registrar and I can help you) entering those nameservers. Then point your domain to those nameservers. To setup Cloudflare DNS with Cyberpanel go to DNS < Cloudflare, enter in your Global API token (can be found in Profile API Tokens) and email and enable sync local records to Cloudflare.
Then generate your dkim records (you can skip this step if you already tick marked DKIM support when creating a website) by going to Email < DKIM Manager. If you are using a 3rd party DNS (other than Cyberpanel DNS or Cloudflare) then you will need to copy the records in this chart from your Cyberpanel DNS to your 3rd party DNS:
After everything is configured, you can start creating an email which should be straightforward. When you finish, you can either access the Rainloop webmail or connect to a 3rd party like Gmail: Read and send email through Gmail.
There are so many other features and security features offered by Cyberpanel that I can't fit into this article, go here to find out more: https://cyberpanel.net/