- Shell 78.4%
- Dockerfile 21.6%
|
|
||
|---|---|---|
| .forgejo/workflows | ||
| savedata/Saved | ||
| Dockerfile | ||
| LICENSE | ||
| README.md | ||
| runicarus.sh | ||
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 22.04 and wine
Environment Vars
Refer to https://github.com/RocketWerkz/IcarusDedicatedServer/wiki/Server-Config-&-Launch-Parameters for more detail on server configs
| ENV Var | Description | Default Value if unspecified |
|---|---|---|
| SERVERNAME | The name of the server on the server browser | Icarus Server |
| PORT | The game port | 17777 |
| QUERYPORT | The query port | 27015 |
| JOIN_PASSWORD | Password required to join the server. Leave empty to not use a password. | |
| MAX_PLAYERS | Max Players that can be on the server at once. Minimum 1, Maximum 8 | 8 |
| ADMIN_PASSWORD | Password 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_FOR | When 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_FOR | When 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_LAUNCH | If 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_DELETE | If 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_PROSPECT | Attempts to load a prospect by name from the Saved/PlayerData/DedicatedServer/Prospects/ folder. | |
| CREATE_PROSPECT | Creates 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_PROSPECT | Resumes the last prospect from the config file | True |
| STEAM_USERID | Linux User ID used by the steam user and volumes | 1000 |
| STEAM_GROUPID | Linux Group ID used by the steam user and volumes | 1000 |
| STEAM_ASYNC_TIMEOUT | Sets the Async timeout to this value in the Engine.ini on server start | 60 |
| BRANCH | Version 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=1000
- STEAM_GROUPID=1000
- 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 memoryandFatal error: [File: Unknown] [Line: 197] \nRan out of memory allocating 0 bytes with alignment 0\nbut system has enough memory.- Solution: Increase maximum number of memory map areas (vm.max_map_count) tested with
262144
temporary:
permanent:sysctl -w vm.max_map_count=262144echo "vm.max_map_count=262144" >> /etc/sysctl.conf && sysctl -p
- Solution: Increase maximum number of memory map areas (vm.max_map_count) tested with