Skip to main content
To install Pterodactyl Panel on Ubuntu 24.04, install PHP 8.3, MariaDB, Redis, Nginx and Composer, download panel.tar.gz to /var/www/pterodactyl, run composer install, php artisan p:environment:setup, php artisan migrate --seed --force and php artisan p:user:make, then add the cron job, the pteroq queue worker and an Nginx site with HTTPS. Finally install Docker and Wings, which runs the game servers. FREAKHOSTING also offers managed game servers on its Game Panel if you’d rather not run a panel yourself: see how to log in to the Game Panel.

Before you start

  • Pterodactyl has two parts. The Panel is the PHP website you log in to. Wings is the daemon that runs each game server in a Docker container. This guide puts both on one server.
  • This guide uses Ubuntu 24.04 and runs every command as root (sudo -i). For Debian or AlmaLinux / Rocky, use the matching dependency commands from the Pterodactyl docs. AlmaLinux / Rocky 10 is not on Pterodactyl’s supported list yet.
  • Use a fresh server. Nginx takes ports 80 and 443.
  • Point a domain such as panel.example.com at the server with an A record. See point a domain to your server.
  • Take a snapshot or backup first if the server already holds data. See schedule and restore backups.

Step 1: Install the panel dependencies

Ubuntu 24.04 ships PHP 8.3, so you don’t need an extra PHP repository. On Ubuntu 22.04, add ppa:ondrej/php first, as the Pterodactyl docs show.

Step 2: Create the database

Step 3: Download and configure the panel

1

Download the files

2

Install PHP packages and create the app key

Run key:generate on a new install only.
3

Back up the encryption key

Store the whole APP_KEY=base64:… line in a password manager. Without it, encrypted panel data can’t be recovered, even from a database backup.
4

Run the setup wizards

Enter https://panel.example.com as the URL, redis for cache, session and queue, and the database password from step 2.
5

Build the database

This creates the tables and the default Nests and Eggs (game templates). Don’t interrupt it.
6

Create your admin user

Answer yes to administrator. The password needs 8 or more characters, mixed case and at least one number.
7

Set file ownership

Step 4: Add the cron job and queue worker

Run crontab -e and add:
Create /etc/systemd/system/pteroq.service:

Step 5: Set up Nginx with HTTPS

1

Get a certificate

2

Create the site

Remove the default site with rm /etc/nginx/sites-enabled/default. Copy the Nginx With SSL configuration from Pterodactyl’s webserver page into /etc/nginx/sites-available/pterodactyl.conf and replace every <domain> with panel.example.com. It points root at /var/www/pterodactyl/public, passes PHP to unix:/run/php/php8.3-fpm.sock and loads the certificate from /etc/letsencrypt/live/panel.example.com/.
3

Enable it

Open https://panel.example.com and log in with the user from step 3.

Step 6: Install Docker and Wings

1

Check virtualisation

kvm or none (bare metal) works. openvz or lxc usually can’t run Wings.
2

Install Docker

Follow install Docker, then run systemctl enable --now docker.
3

Download Wings

4

Create a location and node

In the panel’s admin area, create a Location (nodes belong to a location), then open Nodes and click Create New. Use panel.example.com as the FQDN with SSL, and keep the daemon port 8080 and SFTP port 2022.
5

Add the node configuration

Open the node’s Configuration tab, copy the block into /etc/pterodactyl/config.yml, or click Generate Token and run the command it shows.
6

Test Wings

When it runs without errors, stop it with Ctrl+C.
7

Run Wings as a service

Create /etc/systemd/system/wings.service:
8

Add allocations

Find your public IP with hostname -I | awk '{print $1}'. In the node’s Allocation tab, add that IP and the game ports, for example 25565-25570. Don’t use 127.0.0.1.

Which ports to open

Allow SSH before you run ufw enable, or you lock yourself out. If that happens, use the VNC console.

How to check it worked

Both show active (running). In the panel, Nodes shows a green heart next to your node. Create a test server under Servers > Create New, and it installs and starts.

Frequently asked questions

How much RAM does a Pterodactyl server need?

Plan for the panel, MariaDB and Redis plus the memory of every game server you run at the same time, because each game server gets its own memory limit. Add swap as a safety net and watch use with htop.

Why is my node’s heart red?

The panel can’t reach Wings. Check systemctl status wings, that port 8080 is open, and that the node FQDN has a valid certificate when the panel uses HTTPS.

How do I update Pterodactyl?

Follow the official update guides for the panel and Wings. Back up the database and .env first.

Can Wings run on a different server from the panel?

Yes. Install only Docker and Wings on the second server, create a node for it in the panel and give it its own FQDN and certificate.

VPS and dedicated server guides

Every guide in this section.

Install Docker

Wings needs Docker Engine.

Host game servers with LinuxGSM

A lighter, command-line option.

Tune Linux for game servers

Lower latency for players.

Get a free SSL certificate

Certbot and automatic renewal.

Set up a firewall with UFW

Open only the ports you use.

Checked against the official Pterodactyl panel and Wings documentation on 4 November 2026; package names checked and the Nginx configuration syntax-tested on Ubuntu 24.04 LTS. Commands can differ on other distributions or releases.

Need Extra Help?

If you encounter any issues, our support team is ready to assist:

Save on Your Hosting

Ready to upgrade your hosting? Use code KB20 at checkout for 20% off your first order!

Last Updated: November 2026