Skip to content

indifferentbroccoli/icarus-server-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

marketing_assets_banner GitHub License GitHub Release GitHub Repo stars Discord Docker Pulls

Game server hosting

Fast RAM, high-speed internet

Eat lag for breakfast

Try our game server hosting!

Icarus Dedicated Server Docker

Docker container for running an Icarus Dedicated Server using Wine.

Quick Start

Copy the .env.example file to a new file called .env. Then use either docker compose or docker run

Docker Compose

  1. Copy the environment file:
cp .env.example .env
  1. Edit .env with your configuration (set your PUID/PGID and server settings)

  2. Start the server:

docker compose up -d

Docker Run

docker run -d \
    --restart unless-stopped \
    --name icarus \
    --stop-timeout 30 \
    -p 17777:17777/udp \
    -p 27015:27015/udp \
    --env-file .env \
    -v ./server-files:/home/steam/server-files \
    -v ./server-data:/home/steam/server-data \
    icarus-server-docker

Configuration

Edit your .env file to configure these options:

Variable Default Description
PUID - User ID for file permissions
PGID - Group ID for file permissions
DEFAULT_PORT 17777 Game port
QUERY_PORT 27015 Query port for server browser
MULTIHOME - Bind to specific IP address
SERVER_NAME icarus-server Server name in browser
MAX_PLAYERS 8 Maximum players (1-8)
UPDATE_ON_START true Update server files on container start
RESUME_PROSPECT - Set to "true" to automatically resume last prospect
LOAD_PROSPECT - Prospect name to load on startup
CREATE_PROSPECT - Create new prospect: "ProspectType Difficulty Hardcore SaveName"
USER_DIR - Custom base directory for Saved/ files
SAVED_DIR_SUFFIX - Append suffix to Saved/ directory name
LOG_PATH - Custom log path relative to Saved/Logs/
ABS_LOG_PATH - Absolute log path

Create Prospect Example:

CREATE_PROSPECT="Tier1_Forest_Recon_0 3 false MyProspect"
  • ProspectType: Internal prospect name (see Prospect Names)
  • Difficulty: 1 (easy) to 4 (extreme)
  • Hardcore: true/false (disable respawns)
  • SaveName: Name for this prospect save

Ports

Make sure these ports are forwarded on your router/firewall:

  • 17777/udp Game port
  • 27015/udp Query

For more information and instructions specific to your router, visit portforward.com.

Volumes

  • ./server-files:/home/steam/server-files - Server installation, save data, configs, and logs

Network Error 65

This error may occur when first creating a world in-game. Simply rejoin the server and it should work normally. This is a known issue with the initial world generation.

Known Issues

Memory / OOM Crashes with Large Prospects

Symptoms: Server crashes with out-of-memory errors despite having plenty of RAM available (e.g., "Freeing X bytes from backup pool to handle out of memory" or "Ran out of memory allocating 0 bytes").

Root Cause: Linux kernel's memory map area limit (vm.max_map_count) is too low for Wine applications that allocate many memory regions.

Solution: Increase vm.max_map_count on your Docker host (not inside the container):

Temporary (until reboot):

sudo sysctl -w vm.max_map_count=262144

Permanent:

echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Verify the setting:

sysctl vm.max_map_count

You should see: vm.max_map_count = 262144

This fix allows Wine to create the necessary memory mappings for the Icarus server to handle large save files and high memory usage scenarios.

Resources

About

This is a Dockerized version of the Icarus dedicated server.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •