Wings

Overview

Wings is the Struxa node agent - a Rust service that manages game server containers on each host.

Wings is the node agent component of Struxa. It runs on each physical or virtual machine that hosts game servers. The Panel communicates with Wings over HTTP REST and WebSockets.

What Wings Does

  • Manages game server Docker containers (create, start, stop, restart, delete)
  • Streams real-time console output to the Panel via WebSocket
  • Provides SFTP access to server files (port 2022 by default)
  • Handles file operations: uploads, downloads, decompression, compression
  • Manages backups: local, S3-compatible, restic, btrfs, zfs
  • Reports resource usage (CPU, RAM, disk, network) back to the Panel
  • Enforces resource limits (memory, CPU, disk quotas per server)

Ports Used

PortProtocolPurpose
8080HTTP / WebSocketWings API - Panel communicates here
2022SSH / SFTPFile access to game server files

System Requirements

MinimumRecommended
OSUbuntu 22.04+, Debian 11+, or any Linux distribution with modern Docker supportUbuntu 22.04 LTS
Architecturex86_64, ARM64, RISC-V, or PPC64LEx86_64 or ARM64
RAM512 MB1 GB+
Disk256 MB1 GB+

Docker is required. Wings uses Docker to run and isolate game server containers - it must be installed and running on the host. The requirements above do not include resources needed by game servers themselves; those are additive.

Only Linux is officially supported. Windows is not supported due to Unix-specific feature dependencies.

Runtime

Wings runs as a Docker container (ghcr.io/struxadotcloud/wings). The Docker socket is bind-mounted so Wings can manage sibling containers on the host.

Communication Flow

Panel ──HTTPS──► nginx ──► Wings :8080
Panel ◄──WebSocket────────── Wings   (console streams, power state)
User  ──SFTP :2022──────────► Wings SFTP ──► /var/lib/pterodactyl/<uuid>/

Pterodactyl Compatibility

Wings is a Rust rewrite of Pterodactyl Wings with 100% API compatibility. Any Pterodactyl egg, nest, or node configuration will work with Struxa Wings without modification.

On this page