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, ddup-bak, S3-compatible, restic, Proxmox Backup Server, kopia, and Google Drive (see Backup Adapters)
- Reports resource usage (CPU, RAM, disk, network) back to the Panel
- Enforces resource limits (memory, CPU, disk quotas per server)
Ports Used
| Port | Protocol | Purpose |
|---|---|---|
| 8080 | HTTP / WebSocket | Wings API - Panel communicates here |
| 2022 | SSH / SFTP | File access to game server files |
System Requirements
| Minimum | Recommended | |
|---|---|---|
| OS | Ubuntu 22.04+, Debian 11+, or any Linux distribution with modern Docker support | Ubuntu 22.04 LTS |
| Architecture | x86_64, ARM64, RISC-V, or PPC64LE | x86_64 or ARM64 |
| RAM | 512 MB | 1 GB+ |
| Disk | 256 MB | 1 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.
Wings runs on Linux, where it can use the Unix features its container and file management relies on.
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 that keeps the same API — existing eggs, nests, and node configurations work without modification.