Sign inSign up

obiwantoby/icarus-dedicated-server

By obiwantoby

Updated over 2 years ago

Image
0

956

obiwantoby/icarus-dedicated-server repository overview

Docker Pulls Docker Stars Docker Image Size (tag) GitLab (self-managed)

No official assistance. This is based on @Nerodon 's image. They are available on the official Icarus Discord. This was updated to use Ubuntu 23.10 and Wine 9.0.

icarus-dedicated-server

This dedicated server will automatically download/update to the latest available server version when started. The dedicated server runs in Ubuntu 23.10 and wine 9.0

Environment Vars

Refer to https://github.com/RocketWerkz/IcarusDedicatedServer/wiki/Server-Config-&-Launch-Parameters for more detail on server configs

ENV VarDescriptionDefault Value if unspecified
SERVERNAMEThe name of the server on the server browserIcarus Server
PORTThe game port17777
QUERYPORTThe query port27015
JOIN_PASSWORDPassword required to join the server. Leave empty to not use a password.
MAX_PLAYERSMax Players that can be on the server at once. Minimum 1, Maximum 88
ADMIN_PASSWORDPassword required for using admin RCON commands.
NOTE: If left empty just using the RCON /AdminLogin will give admin privilege's to a player (effectively an empty password)
admin
SHUTDOWN_NOT_JOINED_FORWhen the server starts up, if no players join within this time, the server will shutdown and return to lobby. During this window the game will be paused.
Values of < 0 will cause the server to run indefinitely.
A value of 0 will cause the server to shutdown immediately.
Values of > 0 will wait that time in seconds.
-1
SHUTDOWN_EMPTY_FORWhen the server becomes empty the server will shutdown and return to lobby after this time (in seconds). During this window the game will be paused.
Values of < 0 will cause the server to run indefinitely.
A value of 0 will cause the server to shutdown immediately.
Values of > 0 will wait that time in seconds.
-1
ALLOW_NON_ADMINS_LAUNCHIf true anyone who joins the lobby can create a new prospect or load an existing one. If false players will be required to login as admin in order to create or load a prospect.True
ALLOW_NON_ADMINS_DELETEIf true anyone who joins the lobby can delete prospects from the server. If false players will be required to login as admin in order to delete a prospect.False
LOAD_PROSPECTAttempts to load a prospect by name from the Saved/PlayerData/DedicatedServer/Prospects/ folder.
CREATE_PROSPECTCreates and launches a new prospect.
[ProspectType] [Difficulty] [Hardcore?] [SaveName]
ProspectType - The internal name of the prospect to launch
Difficulty - A value of 1 to 4 for the difficulty (1 = easy, 4 = extreme)
Hardcore? - True or False value for if respawns are disabled
SaveName - The save name to use for this prospect. Must be included for outposts, if not included with regular prospects this will generate a random name.
Example: "Tier1_Forest_Recon_0 3 false TestProspect01" Will create a prospect on the tutorial prospect on hard difficulty and save it as TestProspect01
RESUME_PROSPECTResumes the last prospect from the config fileTrue
STEAM_USERIDLinux User ID used by the steam user and volumes10000
STEAM_GROUPIDLinux Group ID used by the steam user and volumes10001
STEAM_ASYNC_TIMEOUTSets the Async timeout to this value in the Engine.ini on server start60
BRANCHVersion branch (public or experimental)public

Ports

The server requires 2 UDP Ports, the game port (Default 17777) and the query port (Default 27015) They can be changed by specifying the PORT and QUERYPORT env vars respectively.

Volumes

  • The server binaries are stored at /game/icarus
  • The server saves are stored at /home/steam/.wine/drive_c/icarus

Note: by default, the volumes are owned by user 1000:1000 please set the permissions to the volumes accordingly. To change the user and group ID, simply define the STEAM_USERID and STEAM_GROUPID environment variables.

Example Docker Run

docker run -p 17777:17777/udp -p 27015:27015/udp -v data:/home/steam/.wine/drive_c/icarus -v game:/game/icarus -e SERVERNAME=AmazingServer -e JOIN_PASSWORD=mypassword -e ADMIN_PASSWORD=mysupersecretpassword  nerodon/icarus-dedicated:latest

Example Docker Compose

version: "3.8"

services:
 
  icarus:
    container_name: icarus-dedicated
    image: nerodon/icarus-dedicated:latest
    hostname: icarus-dedicated
    init: true
    restart: "unless-stopped"
    networks:
      host:
    ports:
      - 17777:17777/udp
      - 27015:27015/udp
    volumes:
      - data:/home/steam/.wine/drive_c/icarus
      - game:/game/icarus
    environment:
      - SERVERNAME=myAmazingServer
      - BRANCH=public
      - PORT=17777
      - QUERYPORT=27015
      - JOIN_PASSWORD=mypassword
      - ADMIN_PASSWORD=mysupersecretpassword
      - STEAM_USERID=10000
      - STEAM_GROUPID=10001
      - STEAM_ASYNC_TIMEOUT=60

volumes:
  data: {}
  game: {}
 
networks:
  host: {}

License

MIT License

Known Issues

  • Out of memory error: Freeing x bytes from backup pool to handle out of memory and Fatal error: [File: Unknown] [Line: 197] \nRan out of memory allocating 0 bytes with alignment 0\n but system has enough memory.
    • Solution: Increase maximum number of memory map areas (vm.max_map_count) tested with 262144
      temporary:
        sysctl -w vm.max_map_count=262144
      
      permanent:
        echo "vm.max_map_count=262144" >> /etc/sysctl.conf && sysctl -p
      
    Credit: Thanks to Icarus discord user Fabiryn for the solution.

Tag summary

Content type

Image

Digest

sha256:2cad91a3a

Size

708.1 MB

Last updated

over 2 years ago

docker pull obiwantoby/icarus-dedicated-server