Wings Installation
Wings is the server control plane for Pterodactyl/Trexzactyl that handles all server management, Docker container creation, and file operations.
Prerequisites
Before installing Wings:
- Panel Installed: Panel must be installed first
- Node Created: Create a node in the panel admin area
- Docker Support: Server must support Docker
- Ports Open: Required ports must be accessible
Automatic Installation
The easiest way to install Wings:
bash <(curl -s http://installer.trexz.xyz/install.sh)
Select 2. Install Wings from the menu.
The installer will:
- Install Docker
- Install Wings binary
- Configure Wings service
- Set up automatic startup
- Configure firewall rules
Manual Installation
Install Docker
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
sudo systemctl enable --now docker
Install Wings
Download the latest Wings binary:
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
Configure Wings
- Create a node in the panel admin area
- Copy the configuration from the panel
- Save to
/etc/pterodactyl/config.yml
Example configuration:
debug: false
uuid: your-node-uuid
token_id: your-token-id
token: your-token
api:
host: 0.0.0.0
port: 8080
ssl:
enabled: false
upload_limit: 100
system:
root_directory: /var/lib/pterodactyl/volumes
log_directory: /var/log/pterodactyl
data: /var/lib/pterodactyl
sftp:
bind_port: 2022
allowed_mounts: []
remote: https://panel.example.com
Create Systemd Service
Create /etc/systemd/system/wings.service:
[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:
sudo systemctl enable --now wings
Configuration
Node Configuration in Panel
- Navigate to Admin Panel → Nodes
- Click Create New
- Fill in details:
- Name: Node name
- Location: Select location
- FQDN: node.example.com
- Scheme: HTTPS (if using SSL)
- Memory: Total RAM in MB
- Disk: Total disk space in MB
- Daemon Port: 8080
- SFTP Port: 2022
Allocations
Add IP allocations for game servers:
# In panel admin area
# Navigate to Node → Allocations
# Add IP and port range
# Example: 192.168.1.100 ports 25565-25665
SSL Configuration for Wings
If using SSL for Wings API:
- Generate certificate:
sudo certbot certonly --standalone -d node.example.com
- Update config.yml:
api:
ssl:
enabled: true
cert: /etc/letsencrypt/live/node.example.com/fullchain.pem
key: /etc/letsencrypt/live/node.example.com/privkey.pem
- Restart Wings:
sudo systemctl restart wings
Firewall Configuration
Required Ports
- 8080: Wings API (panel communication)
- 2022: SFTP (file management)
- 25565-25665: Game server ports (example range)
UFW Configuration
# Wings API
sudo ufw allow 8080/tcp
# SFTP
sudo ufw allow 2022/tcp
# Game server ports
sudo ufw allow 25565:25665/tcp
sudo ufw allow 25565:25665/udp
iptables Configuration
# Wings API
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
# SFTP
sudo iptables -A INPUT -p tcp --dport 2022 -j ACCEPT
# Game server ports
sudo iptables -A INPUT -p tcp --dport 25565:25665 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 25565:25665 -j ACCEPT
Docker Configuration
Storage Driver
Check Docker storage driver:
docker info | grep "Storage Driver"
Recommended: overlay2
Docker Daemon Configuration
Edit /etc/docker/daemon.json:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"storage-driver": "overlay2"
}
Restart Docker:
sudo systemctl restart docker
Management
Service Control
# Start Wings
sudo systemctl start wings
# Stop Wings
sudo systemctl stop wings
# Restart Wings
sudo systemctl restart wings
# Check status
sudo systemctl status wings
# View logs
sudo journalctl -u wings -f
Update Wings
# Stop Wings
sudo systemctl stop wings
# Download latest version
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")"
# Set permissions
sudo chmod u+x /usr/local/bin/wings
# Start Wings
sudo systemctl start wings
Or use the installer:
bash <(curl -s http://installer.trexz.xyz/install.sh)
# Select option 6. Update Wings
Debug Mode
Enable debug logging in /etc/pterodactyl/config.yml:
debug: true
Restart Wings and check logs:
sudo systemctl restart wings
sudo journalctl -u wings -f
Troubleshooting
Wings Won't Start
Check logs:
sudo journalctl -u wings -n 50
Common issues:
- Invalid configuration
- Docker not running
- Port already in use
- Permission issues
Connection Issues
Test Wings API:
curl http://localhost:8080
Check firewall:
sudo ufw status
Docker Issues
Check Docker status:
sudo systemctl status docker
Test Docker:
sudo docker ps
sudo docker run hello-world
SFTP Not Working
Check SFTP port:
sudo netstat -tlnp | grep 2022
Test SFTP connection:
sftp -P 2022 user@node.example.com
Container Creation Failed
Check Docker logs:
sudo docker logs <container-id>
Verify Docker has enough resources:
df -h
free -h
Performance Tuning
System Limits
Edit /etc/security/limits.conf:
* soft nofile 4096
* hard nofile 4096
Docker Resource Limits
In Wings config.yml:
docker:
network:
name: pterodactyl_nw
tmpfs_size: 100
container:
user: 988
Kernel Parameters
Edit /etc/sysctl.conf:
net.ipv4.ip_forward=1
net.ipv4.conf.all.forwarding=1
fs.file-max=2097152
Apply changes:
sudo sysctl -p
Monitoring
Resource Usage
# CPU and Memory
docker stats
# Disk usage
docker system df
# Container list
docker ps -a
Wings Metrics
Wings exposes metrics on the API endpoint:
curl http://localhost:8080/api/system
Log Monitoring
# Real-time logs
sudo journalctl -u wings -f
# Last 100 lines
sudo journalctl -u wings -n 100
# Logs from today
sudo journalctl -u wings --since today
Security
Best Practices
- Firewall: Only open required ports
- Updates: Keep Wings and Docker updated
- SSL: Use SSL for Wings API
- Monitoring: Monitor logs for suspicious activity
- Backups: Regular backups of server data
Docker Security
# Enable Docker content trust
export DOCKER_CONTENT_TRUST=1
# Scan images for vulnerabilities
docker scan <image-name>
Multiple Nodes
To run multiple Wings nodes:
- Create separate nodes in panel
- Install Wings on each server
- Use unique configuration for each
- Distribute servers across nodes for load balancing
Backup and Restore
Backup Server Data
# Backup all server volumes
tar -czf wings-backup-$(date +%Y%m%d).tar.gz /var/lib/pterodactyl/volumes
Restore Server Data
# Stop Wings
sudo systemctl stop wings
# Restore volumes
tar -xzf wings-backup.tar.gz -C /
# Start Wings
sudo systemctl start wings
Useful Commands
# Check Wings version
wings --version
# Validate configuration
wings configure
# View Wings help
wings --help
# Check Docker version
docker --version
# Clean up Docker
docker system prune -a
