Sign inSign up

nerodon/icarus-dedicated

By nerodon

•Updated 1 day ago

A dedicated server for the survival game Icarus by RocketWerkz

Image
11

10K+

nerodon/icarus-dedicated repository overview

Docker Pulls

Docker Stars

Docker Image Size (tag)

GitLab (self-managed)

For assistance, message @Nerodon on the official Icarus Discord or open an issue on Gitlab

⁠icarus-dedicated-server

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

⁠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 volumes1000
STEAM_GROUPIDLinux Group ID used by the steam user and volumes1000
STEAM_ASYNC_TIMEOUTSets the Async timeout to this value in the Engine.ini on server start60
BRANCHVersion branch (public or experimental)public
SAVEGAMEONEXITWhether to force save when the game exits (True/False)
GAMESAVEFREQUENCYHow many minutes between each save
FIBERFOLIAGERESPAWNWhether to have foliage that was removed respawns over time (True/False) (can help with performance)
LARGESTONERESPAWNWhether to have large stones that have been mined to respawn over time (True/False) (can help with performance)
VALIDATE_EVERY_STARTWhether to validate the installation on every startFalse

⁠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"
    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=1000
      - STEAM_GROUPID=1000
      - STEAM_ASYNC_TIMEOUT=60
      - GAMESAVEFREQUENCY=5
      - FIBERFOLIAGERESPAWN=false
      - LARGESTONERESPAWN=false

volumes:
  data: {}
  game: {}
 

⁠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:30fe7347e…

Size

586.3 MB

Last updated

1 day ago

docker pull nerodon/icarus-dedicated