struxastruxa
Wings

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

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.

Next Steps

On this page