This guide is based on Pterodactyl’s own documentation. This guide also assumes that you have the following, for further assistance consult the setup.md Discord server.
You Will Need
An Ubuntu server with root access - this tutorial assumes that the panel and Wings are running on the same machine.
This means that OpenVZ or LXC-based servers, which will not work with Docker, cannot be used.
Root access to the aforementioned server
A computer with Internet access - required to SSH into the server and interact with the panel
Getting Started
This tutorial uses Ubuntu 20.04 LTS as the base operating system and UFW as the firewall.
PHP 8.1, MariaDB and Nginx will be used as the server stack.
Installing Dependencies for the Panel
The following packages are required for the panel to work
PHP >=8.0 with the following extensions: cli, openssl, gd, mysql, PDO, mbstring, tokenizer, bcmath, xml or dom, curl, zip, fpm
MySQL >=5.7.22 (8 recommended) or MariaDB >=10.2
Redis
A web server e.g Apache, Nginx, Caddy
cURL
tar
unzip
git
composer v2
Installing them are easy!
Downloading the Panel
Next, we need to download the latest version of the panel. Create the directory that the web server will use as the root for the panel.
Use cURL to download the latest version of the panel and extract it. Make sure to set the appropriate permissions for the storage and bootstrap/cache directories
Configuring the Panel
Set up a database and user with permissions for the panel to access. For more detailed instruction, see this guide.
Optionally, if you want to configure the database for remote access, open your my.cnf file (typically in /etc/mysql) and add the following:
Enable the example .env file, install Composer dependencies and generate an application encryption key using artisan
Configuring the Environment
All it takes to configure the environment of the panel is a few more artisan commands
Filling the Database
This command will fill the database with all required data for the panel - including tables, nests and eggs. Do not exit this process until it is completed.
Creating the Administrator User
Run this interactive command to create an administrator user so you can log in to the panel.
Passwords must be 8 characters, mixed case and have at least one number
Service Configuration
Queue Listeners
Pterodactyl uses queues to improve speed and handle background tasks. You’ll need to set up the queue worker to process these.
Crontab
Add the following entry to your root crontab by opening sudo crontab -e
Systemd Service
To run your queue processes in the background, set up a systemd service
Enable the services so they start on boot with the following commands:
Configuring NGINX
This part assumes we are using Nginx with SSL enabled. To generate SSL certificates, we will be using ZeroSSL:
To automatically renew your certificates, create another cron job:
Create the following nginx configuration file in /etc/nginx/sites-available/pterodactyl, replacing panel.example.com with your own:
Enable it with the following commands:
Congratulations! Pterodactyl Panel should now be configured! The next step is to configure Wings, the backend used for interacting with servers.