Server Hosting
Pterodactyl
Wings Installation

Installing Pterodactyl Wings

⚠️

Wings are designed to be used with Pterodactyl 1.x. DO NOT install this software if you are using an older version of the Pterodactyl Panel.

Introduction

Pterodactyl wings are a crucial component of the Pterodactyl control panel, which is a popular open-source game server management tool. These wings provide the necessary backend functionality to support the control panel's features and allow users to easily manage their game servers.

For more detailed information and official documentation, visit the Pterodactyl documentation (opens in a new tab).

Prerequisites

Supported Systems

Operating SystemVersionSupportedNotes
Ubuntu18.04The official Pterodactyl documentation (opens in a new tab) is written assuming Ubuntu 18.04 as the base OS.
20.04
22.04
24.04This guide uses 24.04
CentOS7
8Note that CentOS 8 is EOL. Use Rocky or Alma Linux.
Debian11
12
WindowsAllThis software will not run in Windows environments.

System Requirements

Wings require a Linux system capable of running Docker containers.

The easiest way to check if your machine is compatible is to type systemd-detect-virt. If the output does not contain OpenVZ or LXC, your machine should be compatible.

For more information, please visit the official Pterodactyl documentation (opens in a new tab).

Step-by-Step Guide

Installing Docker

To install Docker using a one-liner, run the following command:

💡

This command may take a while to complete, depending on your internet connection and server speed.

curl -sSL https://get.docker.com/ | CHANNEL=stable bash

If you prefer to manually install Docker, follow the official Docker documentation for your OS:

💡

Check your Kernel

Some host providers may install modified versions of the Linux kernel, which might not support important Docker features. To check your kernel, run the command: uname -r. If your kernel is not supported, it will end in -xxxx-grs-ipv6-64 or -xxxx-mod-std-ipv6-64.

Check the official Pterodactyl guide for Kernel Modifications (opens in a new tab).

Start Docker on Boot

To start Docker when your system starts, run the following command:

sudo systemctl enable --now docker

Enabling Swap

Docker may be unable to set up swap space on most systems. To confirm this, run docker info and look for a line that says WARNING: No swap limit support near the bottom of the output.

NOTE: Swap is not required but recommended by the Pterodactyl Team if you will be hosting for others.

To enable swap, open /etc/default/grub as the root user and find the line starting with GRUB_CMDLINE_LINUX_DEFAULT. Edit the value of swapaccount to 1, like so swapaccount=1.

Next, run sudo update-grub and sudo reboot or systemctl reboot to restart the server and enable swap.

The following line is an example of what the line should look like:

GRUB_CMDLINE_LINUX_DEFAULT="swapaccount=1"

GRUB Configuration

Some Linux distros may ignore GRUB_CMDLINE_LINUX_DEFAULT. In this case, use GRUB_CMDLINE_LINUX instead.

Installing Wings

Ensure you have the required directory structure. Create the following directory to ensure Wings works correctly:

sudo mkdir -p /etc/pterodactyl
curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
sudo chmod u+x /usr/local/bin/wings
⚠️

OVH/SYS Servers

If your server provider is OVH or SoYouStart, note that your primary drive space might be allocated to /home, not / by default. In this case, consider using /home/daemon-data for server data.

This can also be easily changed while creating the node.

Configure

Once the installation of Wings and the required components is complete, you can create a node on your previously installed Panel. Go to your Panel's Administrative View, select Nodes on the left, and click Create New.

⚠️

When using SSL on your Panel, you must also use SSL for your Wings. To create a FQDN using NPM (opens in a new tab) for your Wings, follow this guide.

NOTE: When creating a NPM host for your Wings, you must use http as the Scheme and port 443, when using SSL a FQDN.

NOTE: WebSockets Support must also be enabled on the Wings NPM host to function correctly.

  • Under the Basic details section, fill in the following fields:

    • Name: Enter a name for your node. This can be anything you like.
    • Description: Enter a description for your node. This can also be anything you like.
    • Location: This should reflect the physical location of your server, e.g., ca.bc.local.
    • FQDN: Enter the Fully Qualified Domain Name of your server. This should be the domain name that points to you server's IP address.
    • Communicate Over SSL: When using a FQDN, this should be set to Use SSL Connection. If you are using an IP address, this should be disabled.
    • Behind Proxy: If you are using a proxy, this should be set to Behind Proxy, otherwise set it to Not Behind Proxy.
  • Moving to the right side under the Configuration section, fill in the following fields:

    • Daemon Server File Directory: Leave this as the default value, unless you have a specific reason to change it.
    • Total Memory: Enter the total amount of memory available on your server.
    • Memory Over-Allocation: This is the amount of memory that can be over-allocated to servers. If you wish to with to not allow over-allocation, set the value to 0. If you wish to not check for over-allocation, set the value to -1, otherwise set it to the desired amount.
    • Total Disk Space: Enter the total amount of disk space available on your server.
    • Disk Over-Allocation: The same as memory over-allocation, but for disk space.
    • Daemon Port: This is the port that Wings will use to communicate with the Panel. For SSL connections, and when using a FQDN, use 443. For non-SSL connections, you may use the default value of 8080.
    • Daemon SFTP Port: This is the port that Wings will use for SFTP connections. The default value is 2022. We recommend using the default.

For more information on the configuration options, please read the notes on the screen in the Panel.

After creating a node, navigate to the Configuration tab. Copy the contents of the code block and paste it into a new file called config.yml in /etc/pterodactyl, then save it.

An alternative and easier way is to click on the Generate Token button on the right of the screen and paste the command into your Wings' terminal.

Starting Wings

To start Wings, run the following command. This command starts the Wings process in debug mode. Look through the logs and ensure there are no errors. Once you have confirmed that everything is running smoothly, exit the process using CTRL+C.

💡

Your internet connection may cause the initial pull/start of Wings to be slow.

sudo wings --debug

The --debug flag is optional and is used in this step to ensure the correct installation of Wings.

Daemonizing (using systemd)

Much like the pteroq.service we created in this guide, we will create a service for Wings.

This is done to run the service in the background. First, create a file called wings.service in the /etc/systemd/system directory:

sudo nano /etc/systemd/system/wings.service

Next, copy and paste the following block into the new file:

[Unit]
Description=Pterodactyl Wings Daemon
After=docker.service
Requires=docker.service
PartOf=docker.service
 
[Service]
User=root
WorkingDirectory=/etc/pterodactyl
LimitNOFILE=4096
PIDFile=/var/run/wings/daemon.pid
ExecStart=/usr/local/bin/wings
Restart=on-failure
StartLimitInterval=180
StartLimitBurst=30
RestartSec=5s
 
[Install]
WantedBy=multi-user.target

Then, run the following command to reload systemd and start the Wings service:

sudo systemctl enable --now wings

Node Allocations

To connect to a node in-game, you must assign an Allocation to it. This is done under the Allocation tab, still under Nodes, in the Node you created.

To find the IP of your Wings server, type hostname -I | awk '{print $1}'. The output is the IP used for the allocation. You may also use this command instead: ip addr | grep "inet ".

🚫
DO NOT use 127.0.0.1 for allocations.
  • IP Address: Enter the IP address of your server.
  • IP Alias: This is optional and can be left blank, unless you have a FQDN for that specific IP, or multiple IPs.
  • Ports: Enter the ports you wish to use for the server. The default port for Minecraft is 25565.

For more information, please see the official Pterodactyl documentation (opens in a new tab)

Conclusion

Congratulations! You are now ready to host a game server for yourself and your friends. You've set up everything from installation to configuration, and your server is ready to provide a great gaming experience.

More coming soon!

Happy Hosting!