Prerequisites
Before installing Wings, ensure you have:
- A fresh Linux server (Ubuntu 20.04+, Debian 10+, or CentOS 8+)
- Root or sudo access
- A node created in the Pterodactyl Panel
- The node’s configuration token from the Panel
Wings must run on a Linux system. It cannot run on Windows or macOS in production.
Supported Operating Systems
| OS | Versions | Status |
|---|
| Ubuntu | 20.04, 22.04, 24.04 | ✅ Recommended |
| Debian | 10, 11, 12 | ✅ Recommended |
| CentOS | 8, 9 | ✅ Supported |
| Rocky Linux | 8, 9 | ✅ Supported |
| AlmaLinux | 8, 9 | ✅ Supported |
Install Docker
Wings requires Docker to manage game server containers.
Install Docker (Ubuntu/Debian)
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
Enable Docker on boot
systemctl enable --now docker
Verify Docker installation
You should see output like: Docker version 24.0.7, build afdd53b
Docker on CentOS/RHEL
For CentOS, Rocky Linux, or AlmaLinux:
# Install required packages
dnf install -y dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install -y docker-ce docker-ce-cli containerd.io
# Start and enable Docker
systemctl enable --now docker
Install Wings
Create directories
mkdir -p /etc/pterodactyl
mkdir -p /var/lib/pterodactyl
Download Wings binary
Download the latest Wings release:curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64"
For ARM64 systems:curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_arm64"
Make executable
chmod u+x /usr/local/bin/wings
Get configuration from Panel
- Log into your Pterodactyl Panel
- Navigate to Admin Panel → Nodes
- Click on your node
- Click the Configuration tab
- Copy the entire configuration JSON
Create config file
Create the configuration file:nano /etc/pterodactyl/config.yml
Paste the configuration from the Panel. It should look similar to:debug: false
uuid: your-node-uuid
token_id: your-token-id
token: your-token-secret
api:
host: 0.0.0.0
port: 8080
ssl:
enabled: true
cert: /etc/letsencrypt/live/node.example.com/fullchain.pem
key: /etc/letsencrypt/live/node.example.com/privkey.pem
upload_limit: 100
system:
root_directory: /var/lib/pterodactyl/volumes
data: /var/lib/pterodactyl
sftp:
bind_port: 2022
remote: https://panel.example.com
Test configuration
Test that Wings can start with your configuration:Press Ctrl+C to stop once you see it connect successfully.
For development/testing, you can run Wings without SSL by setting api.ssl.enabled: false. However, SSL is required for production use.
Swap space helps prevent out-of-memory errors:
# Create 2GB swap file
dd if=/dev/zero of=/swapfile bs=1M count=2048
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
# Make swap permanent
echo '/swapfile none swap sw 0 0' >> /etc/fstab
Setup systemd Service
Create a systemd service to run Wings automatically.
Create service file
nano /etc/systemd/system/wings.service
Add the following content:[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
Enable and start Wings
# Reload systemd
systemctl daemon-reload
# Enable Wings to start on boot
systemctl enable wings
# Start Wings
systemctl start wings
Check status
You should see:● wings.service - Pterodactyl Wings Daemon
Loaded: loaded (/etc/systemd/system/wings.service; enabled)
Active: active (running) since...
Firewall Configuration
You need to allow traffic to Wings and your game servers:
UFW (Ubuntu/Debian)
# Allow Wings API
ufw allow 8080/tcp
# Allow SFTP
ufw allow 2022/tcp
# Allow game server ports (adjust as needed)
ufw allow 25565:25665/tcp
ufw allow 25565:25665/udp
# Enable firewall
ufw enable
FirewallD (CentOS/RHEL)
# Allow Wings API
firewall-cmd --add-port=8080/tcp --permanent
# Allow SFTP
firewall-cmd --add-port=2022/tcp --permanent
# Allow game server ports
firewall-cmd --add-port=25565-25665/tcp --permanent
firewall-cmd --add-port=25565-25665/udp --permanent
# Reload firewall
firewall-cmd --reload
SSL/TLS Certificates
Wings requires SSL certificates for secure communication with the Panel.
Using Let’s Encrypt (Recommended)
Install Certbot
# Ubuntu/Debian
apt install -y certbot
# CentOS/RHEL
dnf install -y certbot
Generate certificate
certbot certonly --standalone -d node.example.com
Replace node.example.com with your node’s domain.Update Wings config
Update /etc/pterodactyl/config.yml:api:
ssl:
enabled: true
cert: /etc/letsencrypt/live/node.example.com/fullchain.pem
key: /etc/letsencrypt/live/node.example.com/privkey.pem
Auto-renewal
Certbot automatically sets up renewal. Test it with:
Verify Installation
Check that Wings is working correctly:
# Check Wings status
systemctl status wings
# View Wings logs
journalctl -u wings -f
# Test Wings API
curl -k https://node.example.com:8080/api/system
In the Panel, your node should show as online with a green heart icon.
Building Wings from Source
For development purposes, you can build Wings from source (as mentioned in BUILDING.md:60):
Install Go
wget https://go.dev/dl/go1.21.0.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
Clone Wings repository
git clone https://github.com/pterodactyl/wings.git
cd wings
Build Wings
# For development
make debug
# For production
make build
Troubleshooting
Wings won’t start
# Check logs
journalctl -u wings -n 100
# Verify config syntax
wings configure --check
# Test with debug mode
wings --debug
Node shows offline in Panel
- Check Wings is running:
systemctl status wings
- Verify firewall allows port 8080
- Check SSL certificates are valid
- Verify
remote URL in config matches Panel URL
- Check token credentials are correct
Docker permission issues
# Ensure Docker is running
systemctl status docker
# Restart Docker
systemctl restart docker
Next Steps
Configuration
Learn about Wings configuration options
Security
Secure your Wings installation
Monitoring
Monitor Wings and server performance
Docker Management
Understand container management