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
- Install a Linux OS Ubuntu Installation Guide.
- Completed Installing Pterodactyl Panel.
- Root access to your servers is required.
Supported Systems
Operating System | Version | Supported | Notes |
---|---|---|---|
Ubuntu | 18.04 | ✅ | The official Pterodactyl documentation (opens in a new tab) is written assuming Ubuntu 18.04 as the base OS. |
20.04 | ✅ | ||
22.04 | ✅ | ||
24.04 | ✅ | This guide uses 24.04 | |
CentOS | 7 | ✅ | |
8 | ✅ | Note that CentOS 8 is EOL. Use Rocky or Alma Linux. | |
Debian | 11 | ✅ | |
12 | ✅ | ||
Windows | All | ❌ | This 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 toUse 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 toBehind Proxy
, otherwise set it toNot 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 to0
. 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 aFQDN
, use443
. For non-SSL connections, you may use the default value of8080
.Daemon SFTP Port
: This is the port that Wings will use for SFTP connections. The default value is2022
. 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 "
.
IP Address
: Enter the IP address of your server.IP Alias
: This is optional and can be left blank, unless you have aFQDN
for that specific IP, or multiple IPs.Ports
: Enter the ports you wish to use for the server. The default port for Minecraft is25565
.
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!