Installing Wings
Install Wings, the service that runs your game servers, on a node.
Introduction
Wings runs on each node, manages Docker, and runs your game servers for the Panel. For the connections and ports it uses, see How Pterodactyl Works.
Pterodactyl 2.0 uses the same Wings as 1.x, and Wings 1.13.2 to 1.13.4 are tested with it.
Supported Systems
Wings supports these operating systems:
| Operating System | Versions |
|---|---|
| Ubuntu | 22.04, 24.04, 26.04 |
| Debian | 12, 13 |
Other Linux distributions may work but often need changes to these steps, and we cannot help with them. Wings does not run on Windows.
System Requirements
Wings needs a Linux system that can run Docker containers. Most virtual private servers and nearly all dedicated servers can.
If your provider uses Virtuozzo, OpenVZ, or LXC virtualization, Wings probably will not run. Some providers support Docker anyway, so ask them. KVM always works.
To check your virtualization, run:
systemd-detect-virtIf the result is not openvz or lxc, Wings should work. none means the server is not virtualized.
Dependencies
Wings needs curl and Docker.
Installing Docker
Install Docker with Docker's install script:
curl -sSL https://get.docker.com/ | CHANNEL=stable bashTo install it by hand, follow the official Docker documentation.
Check your kernel
Some hosts use a modified kernel that lacks important Docker features. If uname -r ends in -xxxx-grs-ipv6-64 or -xxxx-mod-std-ipv6-64, ask your host to switch to your distribution's standard kernel.
Start Docker on Boot
On systemd systems, run this so Docker starts on boot:
sudo systemctl enable --now dockerEnabling Swap
Linux kernel 6.1 and newer enable swap accounting by default, so you can skip this step. Check your version with uname -r.
On older kernels, Docker usually cannot limit swap, and docker info prints WARNING: No swap limit support near the end. Enabling swap is optional, but we recommend it if you host servers for others, to help prevent out-of-memory errors.
To enable it, open /etc/default/grub as root and add swapaccount=1 inside the quotes of the GRUB_CMDLINE_LINUX_DEFAULT line, keeping anything already there:
GRUB_CMDLINE_LINUX_DEFAULT="swapaccount=1"Then run sudo update-grub and sudo reboot. Some distributions ignore GRUB_CMDLINE_LINUX_DEFAULT. If the change has no effect, add the option to GRUB_CMDLINE_LINUX instead.
Installing Wings
Create the configuration directory, then download the Wings binary for your CPU:
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/wingsConfiguring Wings
Create a node in the Panel, then give its configuration to Wings.
- In the Panel, open Admin → Nodes and click New node.
- Fill in the node's details, then save it.
- Open the node and select the Configuration tab.
The tab shows the node's configuration file. Configure Wings in one of two ways.
Using the Auto-Deploy Command
Click Generate Token under Auto-Deploy. The Panel shows a command like this:
cd /etc/pterodactyl && sudo wings configure --panel-url https://panel.example.com --token ptla_... --node 1Run it on the node. It saves the configuration from the Panel to /etc/pterodactyl/config.yml. If the file exists, add --override to replace it.
Copying the Configuration File
Or copy the file from the Configuration tab to /etc/pterodactyl/config.yml on the node. The tab fills in remote from the address you opened the Panel with, so check that it is your Panel's address.
If your Panel uses HTTPS, Wings also needs a certificate for its own domain name.
Starting Wings
Start Wings in debug mode to check that it works:
sudo wings --debugThe first start may take a few minutes while Wings sets up Docker. Once it runs without errors, stop it with CTRL+C and run it as a service.
Running Wings as a Service
To run Wings in the background, create wings.service in /etc/systemd/system:
[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.targetThen enable and start it:
sudo systemctl enable --now wingsAdding Allocations
An allocation is an IP address and port you can assign to a server. Every server needs at least one. To add them, open the node in Admin → Nodes and select the Allocation tab.
Use the IP address of the node's network interface, or the internal IP address behind NAT. To find it, run:
hostname -I | awk '{print $1}'Do not use 127.0.0.1 for allocations players connect to. It is only for servers that other servers on the node connect to, such as the backend servers of a Minecraft proxy network.
Last updated on