Unicorn Panel is under active development and this documentation is currently outdated.
Installation Guide
Thank you for taking the time to use Unicorn Panel (UPCP). We've streamlined the installation process so that it's a simple as running a single command.
Prerequisites
- Your license key
Hardware requirements
- A blank (no other software) VPS or bare metal server
- Alpine v3.21 or above. We recommend the latest version of Alpine.
- A minimum of 500MB RAM and 5GB storage.
- AArch64/ARM64 architecture
If you plan on using UPCP's email facilities, the recommended minimum RAM requirement is 1GB.
Installation steps
- Login to your new server as root
-
Copy and paste your the installation command into the terminal:
sh -c "$(curl -sL https://unicornpanel.net/install)"
- Hit Enter. This will trigger the installation process.
- Wait for this process to finish and you will be presented with a link and login details to your administration account.
- If you're unable to visit the link presented to you, please make sure your firewall has port 8272 open.
- Once logged in, navigate to Account -> My Account to update your admin details and change the password.
System generated emails
Emails generated by the control panel (such as forgot password) are unable to be sent unless you install the Email service. When installed, these emails will most likely fail when being sent to providers like Gmail, Hotmail, and Outlook. We have created options to either add your own SMTP configuration (which does not require setting up the email service), or if you are using the email services, to add smart host settings.
Overview
The Dashboard shows an overview of what's going on on the server. This includes information such as:
- Hostname
- Public IP Address
- Memory Usage (in text format and history graph)
- Network Usage
- Histoical CPU Usage
- Histoical Running Processes
- Histoical Disk Usage (Primary / Parition)

Historical data is only kept for 2 weeks to minimize the monitoring database. An average database size for 2 weeks is ~8MB.
Overview
The Websites tab enables you to see a list of websites your account can see.
- For Owners, they will see every website.
- For Customers, they will only see what they have either created or been assigned.

Historical data is only kept for 2 weeks to minimize the monitoring database. An average database size for 2 weeks is ~8MB.
Web SSH Terminal
The terminal is a great tool for end users to securely access their container which contains their files. They also have power to restart their services from this container or install other software packages such as ffmpeg.

sudo & root access
The container is fully secure; this allows the end user to sudo into 'root' in this container to further manage it. For example, they may want to install ffmpeg and can do so by issuing the collowing command:
sudo apt install ffmpegThis would install ffmpeg inside their own container.
Remove sudo access
If you would prefer your customers to not have root access to their container, you can simply disable this option in the _config.php file by adding the following:
$_CONFIG['disable_customer_sudo'] = true;Please note, if any customers already have root access, you will need to remove a file within their container to block them:
rm /opt/upcp/containers/[WEBSITE_ID]/etc/sudoers.d/[WEBSITE_ID]Disable Web SSH Terminal
You can disable the Web SSH Terminal for customers by adding the following to your _config.php file:
$_CONFIG['disable_web_ssh_terminal'] = true;CoreDNS
UPCP has provided the facility for you to create your own nameservers and host/manage the domains. Some great features are:
- For Owners, they will see every website.
- For Customers, they will only see what they have either created or been assigned.

Historical data is only kept for 2 weeks to minimize the monitoring database. An average database size for 2 weeks is ~8MB.
Setting up a second DNS
We've made it super easy to set-up another DNS using UPCP. Follow the following steps to get set-up:

- On the first server with CoreDNS enabled, make sure its Server Type is set to Master.
- To create a second DNS, simply install UPCP again on a fresh server. Take note of it's IP address.
- Register your private nameservers (often referred to as glue records) with your domain registrar.
- Now on the first server, if you have not already, then add your domain.
- Once your domain is added, create two A records within that domain that correspond to your private nameservers. Usually, these are
ns1 and ns2. Make sure ns1 points to your first server's IP Address and ns2 points to your second server's IP Address. - On the first server, on the Domains screen, enter your full name server into the corresponding field i.e. Master Server =
ns1.myhosting.com and 2nd Nameserver = ns2.myhosting.com. The system will attempt to validate and retreive the IP address of the records. If successful, the system will update all the DNS records and use the nameservers going forward. If this fails, please try re-adding them again later. - On the second server, set the Server Type to Slave and add the Master Nameserver.
- If successful, CoreDNS will take over and start synchronizing records between the servers. Synchronization can take 60 seconds.
Import Zones
Simply drag/drop or copy/paste (while the pop-up is present) your zone file and UPCP will attempt to parse and import the file. Please double-check the records after import, because some records may not be compatible.

Force synchronization
Click the link Synchronize Zones to force CoreDNS to synchronize all records. Please note, this can take ~60 seconds.
Disable CoreDNS
Use the toggle on the Domains screen to disable CoreDNS.
Overview
For the database server, we use MariaDB. The Databases provides an overview of what databases are on the system. They include:
- The database name
- The database size
- The ability to download the database
- The ability to upload into the database

Historical data is only kept for 2 weeks to minimize the monitoring database. An average database size for 2 weeks is ~8MB.
How to open DB Admin
Database administration is a primary part of any system, for this, we use Adminer. To access adminer, click the icon next to any database to access adminer.

MariaDB
The Websites tab enables you to see a list of websites your account can see.
- For Owners, they will see every website.
- For Customers, they will only see what they have either created or been assigned.

Historical data is only kept for 2 weeks to minimize the monitoring database. An average database size for 2 weeks is ~8MB.
MariaDB
The Websites tab enables you to see a list of websites your account can see.
- For Owners, they will see every website.
- For Customers, they will only see what they have either created or been assigned.

Historical data is only kept for 2 weeks to minimize the monitoring database. An average database size for 2 weeks is ~8MB.
MariaDB
The Websites tab enables you to see a list of websites your account can see.
- For Owners, they will see every website.
- For Customers, they will only see what they have either created or been assigned.

Historical data is only kept for 2 weeks to minimize the monitoring database. An average database size for 2 weeks is ~8MB.
Overview
Security is managed by Fail2Ban and UFW. UPCP has integrated common custom jails to help protect the server from bots and other malicious users.
You can ban and unban IP addresses, view IP address information (by clicking on the IP), and view which jails are banning the most IP addresses.
Fail2Ban
With UPCP our Fail2Ban actions have been refactored to enable quick ban/unban actions.

Ban a IP address
To ban an IP address, simply type the IP address in the box provided and click the button labeled Ban. A confirmation screen will pop-up with the result of this action.

Unban an IP address
To unban an IP address, simply type the IP address in the box provided and click the button labeled Unban. A confirmation screen will pop-up with the result of this action.

Adding your own jail
Unicorn Panel will automatically notice when a new jail has been added and add it to the control panel. From there, you can unban the IP addresses.
To rename the jail to a nicer friendlier name, update _config.php and add the following:
$_CONFIG['Firewall']['f2b_to_names'] = [
'jail-name' => 'Friendly Jail Name'
];MariaDB
The Websites tab enables you to see a list of websites your account can see.
- For Owners, they will see every website.
- For Customers, they will only see what they have either created or been assigned.

Historical data is only kept for 2 weeks to minimize the monitoring database. An average database size for 2 weeks is ~8MB.