aaPanel - An Open Source Alternative For cPanel

cPanel is the control panel for web hosting built by cPanel LTD. In the last article of the Linux cPanel series, I reviewed Virtualmin, a popular, free, and open-source control panel. aaPanel is also a free and open-source control panel for Linux. It’s easy to install & all the web hosting options are well-categorized for easily managing websites and databases.

cPanel is a trendy control panel for web hosting. Most web hosting companies, including Hostgator, Bluehost, and GoDaddy, provide cPanel to perform tasks on servers easily. But, it is not free.

In this series, I am hunting down the best open source control panels for web hosting. aaPanel is one such hosting panel that provides an easy-to-use GUI interface with many options and security features.

First of all, aaPanel is easily installable. It provides a single script to be run on a newly created server. The script installs all the tools, dependencies and sets up a user account to log in.

It is highly recommended that you run the script on a fresh system. Still, if you want to run it on a server that already has a few user-installed programs running, use the –force option when executing the script—anyway, enough talk. Let’s do some practical.

Server Requirements

  • 512M or more (768M or more is recommended)
  • More than 100M available hard disk space
  • Debian, Ubuntu, Deepin, CentOS (CentOS is recommended)
  • Clean server (No server environment such as Apache or Nginx should be installed)

Install aaPanel on Linux

Currently, aaPanel supports Debian, Ubuntu, and CentOS. If you have no server, go with MassiveGRID. They provide solid servers with active support.

For Debian –

wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && bash install.sh

For Ubuntu –

wget -O install.sh http://www.aapanel.com/script/install-ubuntu_6.0_en.sh && sudo bash install.sh

For CentOS –

yum install -y wget && wget -O install.sh http://www.aapanel.com/script/install_6.0_en.sh && bash install.sh

Run the script –

sudo bash install.sh

The script requires a few user inputs. It’ll ask for the aaPanel installation directory; by default, it’s installed in /www. Type ‘n’ for changing the directory.

Provide your email id and hostname.

Download and install aaPanel

Now Netflix and chill. The installation may take a little while.

After the installation is over, it will give you the login URL, username, and password. Notice the 8 digit code in the URL. Without this 8 digit code, the login panel will not open.

aaPanel installation completed
aaPanel login credentials

For the first time you log in, it will ask to install LAMP or LNMP. LAMP includes Apache, MySQL, PHP, Pure-Ftpd, and phpMyAdmin. LNMP installs Nginx, MySQL, PHP, Pure-Ftpd, and phpMyAdmin.

aaPanel dashboard

The installation takes too much time. On my server (i7 Hexacore, 16GB memory), the LAMP installation took around an hour to complete.

aaPanel recommended packages

Until LAMP installation completes, you can also fix a security issue. The default port for aaPanel is 8888. The team recommends changing the default port for security purposes.

To change the server port, go to settings and enter the port that is not already in use. Do not use ports 80, 443, 22, and 21, as popular services use these ports on almost all servers.

aaPanel dashboard
aaPanel Change default port
aaPanel Settings

Add a new website

It is time to involve in some real business. Create a new website. Click the Website link from the sidebar, click ‘Add site’.

Now enter the domain name for your site, a brief description of your site, select the directory where the website should be stored, select if you want to create an FTP account. An FTP account is useful to manage website files using Filezilla.

If you want to create a WordPress site, then choose to create a database. Select a PHP version and site category. Click ‘Submit’.

aaPanel Add site

Now you can point your domain name to the server’s IP address. aaPanel will redirect all the requests made from that domain to this website.

Websites list

If you forgot to create an FTP account while creating the website, you could create one now. From the website list, click add FTP user.

Add FTP account

There is a separate section for managing FTP accounts. Make sure not to leave any unnecessary FTP account. Set a strong password and change account passwords regularly.

FTP accounts

The panel also allows us to change the FTP port. I recommend changing the default FTP and ssh port.

Change FTP port

It’s easy to manage websites’ databases with aaPanel. Go to Menu >> Databases.

Add database

Change MySQL root password.

Change root password

If LAMP or LNMP is installed successfully, you can also manage databases with phpMyAdmin. Click phpMyAdmin, and it will open phpMyAdmin.

phpMyAdmin databases

System Monitor

The server monitoring is important, so the system monitoring is built-in to the panel. It provides real-time CPU, memory, storage usage.

aaPanel System Monitor

Server Security

To improve system security, it is important to block all unused ports. Open or block the server port from the security tab, easily change SSH port, block ICMP, and clean server logs.

From the Security tab, you can also monitor panel execution logs to check any suspicious activity.

Panel Security Settings

Besides these useful features, aaPanel also has a file browser, cron jobs management support, and an app store.

You can install or upgrade PHP from the apps store, install Apache/Nginx server, or install a website speed package to improve websites’ loading time. There are many more packages available in the app store.

aaPanel Apps Store


aaPanel is very easy, if not the easiest, to use a control panel for web servers. It makes it really simple to perform day-to-day server management tasks with GUI. The only thing that I disliked about aaPanel is the time it took to install LAMP. It took around 1 hour!

So I would love it if they can reduce the time. But once the server is set up and the LAMP or LNMP is installed, the rest of the features work quickly.