Skip to main content
You are here: Tutorials

Install Pterodactyl Panel & Wings

This is how to install the infamous pterodactyl software on your AuroraVM server.

For this you will need

  • An active domain with cloudflare that you have owner access to

  • An active AuroraVM Instance

  • Basic Linux Knowledge

#1 — Panel Installation

Start by installing curl if you haven't.

sudo apt install curl -y

If you have already installed curl, skip ^^^^^

Then, run the pterodactyl installer script.

bash <(curl https://pterodactyl-installer.se)

Enter your domain or subdomain. Select "no" for configuring UFW, Select "no" again for Let's Encrypt. Select "yes" for assuming SSL and "no" for the HTTPS request. This is absolutely necessary so we can proceed correctly and will make it easier for us to setup the panel.

SSL Configuration

Once it has installed, modify nginx and generate a self signed SSL Certificate:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /2.pem -out /1.pem -subj "/CN=localhost"
sed -i 's|^\s*ssl_certificate\s\+.*|    ssl_certificate /1.pem;|' /etc/nginx/sites-available/pterodactyl.conf
sed -i 's|^\s*ssl_certificate_key\s\+.*|    ssl_certificate_key /2.pem;|' /etc/nginx/sites-available/pterodactyl.conf
sed -i 's/\b443\b/8443/g; s/\b80\b/8000/g' /etc/nginx/sites-available/pterodactyl.conf
systemctl restart nginx

If you don't see an output, that's totally normal.

#2 — Cloudflare Tunnel

Cloudflare tunnel is basically our superpower here. It makes it possible to expose applications to the Internet without the server needing outside Internet using tunneling. This is especially useful for servers without an dedicated IPv4 address. Make sure you have a domain active on cloudflare, and you have owner access to it so you can access zero trust.

Go to one.dash.cloudflare.com, Navigate to Network → Tunnels → Create Tunnel. Choose cloudflared and give your tunnel a name. Select Debian and follow the on-screen instructions to install cloudflared and connect the tunnel to your server.

Now go back to one.dash.cloudflare.com and check the tunnel Status, if it says "HEALTHY" Then you have set it up correctly.

Now go to your tunnel again and select the "Public Host names" tab. Choose the subdomain you entered earlier, set service type to "HTTPS", set the service url to "localhost:8443", then click "Additional Application Settings" → "TLS" and enable "No TLS Verify" then save your hostname.

Now go to your hostname and see if your pterodactyl is active, if so we can proceed to installing Pterodactyl wings.

#3 — Wings Installation

Run the pterodactyl installer script again

bash <(curl https://pterodactyl-installer.se)

This time select [1] for wings as an option.

Say "no" for UFW Firewall, Say "no" for MYSQL Database User & Say "no" to HTTPS with Let's Encrypt.

After wings is installed, go to one.dash.cloudflare.com again and create another public hostname on your tunnel. Set the subdomain you like (eg. For me it's nodetest.auroravm.cloud), set service type to "HTTPS", set service url to "localhost:443", go to "Additional Application Settings" and enable "No TLS Verify".

Now go to your panel and add a node. Follow these steps.

  1. Go to the locations tab, create a location and name it whatever (eg. Xeon Germany)

  2. Now go to the nodes tab and create a node.

  3. Set the FQDN to the subdomain you just created for your node

  4. Set the Daemon Port to 443, Leave the SFTP port as 2022.

  5. Create the node. And run the Auto-Deploy script.

Now, let's do additional configuration on the config.yml file in /etc/pterodactyl, so wings actually works correctly with our setup.

Run this if you are hosting wings on the same server where panel is hosted:

sed -i 's|^\(\s*cert:\s*\).*|\1/1.pem|' /etc/pterodactyl/config.yml
sed -i 's|^\(\s*key:\s*\).*|\1/2.pem|' /etc/pterodactyl/config.yml

Run this if you are hosting wings on a separate host where the panel is hosted:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /2.pem -out /1.pem -subj "/CN=localhost"
sed -i 's|^\(\s*cert:\s*\).*|\1/1.pem|' /etc/pterodactyl/config.yml
sed -i 's|^\(\s*key:\s*\).*|\1/2.pem|' /etc/pterodactyl/config.yml

Now all you need to do is start up wings, run this:

systemctl start wings

Boom! If you have a green heart on your node then you have set up a pterodactyl panel and wings successfully!