Skip to main content

Overview

Wings uses Docker to isolate and manage game servers. Each server runs in its own container with dedicated resources, providing security, performance, and reliability benefits.

Container Lifecycle

Wings manages the complete lifecycle of server containers:

Container Creation

When a server is created in the Panel, Wings creates a Docker container with specific configuration from ServerConfigurationStructureService (app/Services/Servers/ServerConfigurationStructureService.php:43):

Container Specification

Resource Limits

Wings enforces strict resource limits on containers:

Memory

  • memory_limit: Maximum RAM the container can use
  • swap: Additional swap space (typically 0 for game servers)
  • oom_disabled: Prevent OOM killer from stopping container

CPU

  • cpu_limit: CPU quota (100 = 1 core, 200 = 2 cores)
  • threads: Pin to specific CPU cores (optional)

Disk

  • disk_space: Maximum disk usage
  • io_weight: I/O scheduling weight (higher = more priority)

Server Installation

Wings handles server installation through a dedicated installation container:
1

Panel provides installation script

Wings requests installation data from /api/remote/servers/{uuid}/install (app/Http/Controllers/Api/Remote/Servers/ServerInstallController.php:31):
2

Wings creates installation container

A temporary container is created with:
  • Installation image (e.g., debian:buster-slim)
  • Server files mounted
  • Installation script as entrypoint
3

Script execution

The installation script runs with elevated privileges to download and setup server files.
4

Installation completion

Wings reports status to /api/remote/servers/{uuid}/install (app/Http/Controllers/Api/Remote/Servers/ServerInstallController.php:53):
From the EggInstallController (app/Http/Controllers/Api/Remote/EggInstallController.php:26), Wings receives:

Container Images (Yolks)

Wings uses container images called “Yolks” that provide runtime environments:

Common Yolks

Image Management

Wings automatically pulls required images:

Container Networking

Wings configures container networking using Docker’s bridge network:

Port Allocation

Ports are mapped from the container to the host:
This creates Docker port mappings:

Network Mode

By default, containers use bridge networking. Wings handles:
  • Port allocation and mapping
  • IP address assignment
  • Network isolation between servers

Container Storage

Each server gets a dedicated volume for persistence:

Volume Structure

Volumes are mounted into containers at /home/container:

Mounts

Additional host directories can be mounted (configured in Wings config):
Mounts configuration (app/Services/Servers/ServerConfigurationStructureService.php:80):

Environment Variables

Wings injects environment variables into containers:
These variables come from the Panel’s EnvironmentService and are used in startup commands:

Container Monitoring

Wings continuously monitors container stats:

Resource Usage

Wings reports these stats to the Panel for display in the web interface.

Container Logs

Wings captures container output:
Logs are streamed to the Panel via WebSocket for the web console.

Container Security

Isolation

Each container is isolated:
  • Separate filesystem (volumes)
  • Isolated network namespace
  • Resource limits enforced by cgroups
  • User namespace separation

Security Features

Some game servers require specific capabilities. Wings configures these automatically based on egg configuration.

Container Management Commands

List Containers

Inspect Container

Execute Commands

Direct Docker commands can interfere with Wings management. Only use for debugging.

Troubleshooting

Container Won’t Start

High Resource Usage

Permission Issues

Advanced Container Features

OOM Prevention

Wings can disable the OOM killer for containers:
This prevents Docker from killing the container when it reaches memory limits.

CPU Pinning

Pin containers to specific CPU cores:

I/O Priority

Control disk I/O priority:

Next Steps

Networking

Configure network and port allocation

Security

Secure container configuration

Monitoring

Monitor container performance

Configuration

Advanced Wings configuration