Icarus-Dedicated
Icarus is a survival game that with dedicated servers as a public beta
Ports
Add an allocation on the node for each port.
- Game 17777
- Query 27015
Image
- Wine Latest ghcr.io/ptero-eggs/yolks:wine_latest
Panel features
- steam_disk_space
The Panel tells the user when SteamCMD does not have enough disk space.
Startup
The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.
9 variables
Startup command
wine ./Icarus/Binaries/Win64/IcarusServer-Win64-Shipping.exe -Log -SteamServerName=IcarusServer -PORT="17777" -QueryPort="27015" & ICARUS_PID=$!; tail -c0 -F /home/container/Icarus/Saved/Logs/Icarus.log --pid=$ICARUS_PIDDotted values come from the server settings. These values are examples.
UDP port for Steam server list features.
QUERY_PORTUsers can edit
required|integer|between:1024,65536
SERVER_NAMEUsers can edit
required|string|max:64
Required for windows game server installs
WINDOWS_INSTALLUsers cannot see
required|boolean
Run installs on software that is required by the server
WINETRICKS_RUNUsers cannot see
required|string
steam app id found here - https://developer.valvesoftware.com/wiki/Dedicated_Servers_List
SRCDS_APPIDUsers cannot see
required|string|in:2089300
Disabling or enabling automated updates on boot
AUTO_UPDATEUsers can edit
required|boolean
WINEDEBUGUsers cannot see
required|string|max:20
WINEPATHUsers cannot see
required|string|max:20
WINEARCHUsers cannot see
required|string|in:win64
Wings
- Stop command
- ^C (SIGINT)
- Running when the console shows
- (Engine Initialization) Total time:
Readme
Icarus
NOTE: Server version currently marked as Beta by the developers.
Authors / Contributors
Game Description
Icarus is a session-based survival game for up to 8 co-op players or solo players, where most gameplay occurs during timed missions. Players accept contracts for missions on a space station orbiting the planet, and drop down to its terrain to attempt the objectives. Once a mission timer is complete, the drop-pod returns to the station. If the player fails to return in time, their workshop items are left on the surface and their progress is lost. There is also support for an OpenWorld where without resets.
Egg Capabilities
- Currently runs the Windows build of the server via wine.
- Auto-Updates on restart.
Server Ports
- Default server ports are listed below, but all three ports can be changed freely.
- Clients connect via the server list in game.
| Port | Default | Protocol |
|---|---|---|
| Game | 17777 | UDP |
| Query | 27015 | UDP |
Installation/System Requirements
| Recommended | Extra info | |
|---|---|---|
| Processor | Recent x86/64 (AMD/Intel) processor. No 32 bit or ARM support. | Unsubstantiated reports say that RCON uses significantly more CPU when enabled, but I have not been able to replicate myself. |
| RAM | 8-16 GB | |
| Storage | 14 GB (or more, depending on save size or frequency) |
Save File and Custom Settings Location
You can define a custom dir for settings by adding -UserDir= to the startparameter. More Info
Server Game Settings
Changes
- Icarus: Increase maximum server name from 32 to 64 length. (#497)
· Alximik · d101e53
- Icarus update (#395)
· Red Banana · 7648dc5
- Icarus-dedicated: Correct variable validation
· Daniel Barton · 388ddc9
- Icarus: Update to VC 2022 to fix boot (#77)
· Daniel Barton · f482961
- Add steamcmd based eggs
· Daniel Barton · 60ef9fb
Problem with this egg?
Open an issue on GitHub. Include your Panel and Wings versions.
Install script 53 lines /bin/bash in ghcr.io/ptero-eggs/installers:debian Show Hide
#!/bin/bash
## License: MIT License
## Image to install with is 'ghcr.io/ptero-eggs/installers:debian'
if [[ "${STEAM_USER}" == "" ]] || [[ "${STEAM_PASS}" == "" ]]; then
echo -e "steam user is not set.\n"
echo -e "Using anonymous user.\n"
STEAM_USER=anonymous
STEAM_PASS=""
STEAM_AUTH=""
else
echo -e "user set to ${STEAM_USER}"
fi
## download and install steamcmd
cd /tmp
mkdir -p /mnt/server/steamcmd
curl -sSL -o steamcmd.tar.gz https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd
mkdir -p /mnt/server/steamapps # Fix steamcmd disk write error when this folder is missing
cd /mnt/server/steamcmd
# SteamCMD fails otherwise for some reason, even running as root.
# This is changed at the end of the install process anyways.
chown -R root:root /mnt
export HOME=/mnt/server
## install game using steamcmd
./steamcmd.sh +force_install_dir /mnt/server +login ${STEAM_USER} ${STEAM_PASS} ${STEAM_AUTH} $( [[ "${WINDOWS_INSTALL}" == "1" ]] && printf %s '+@sSteamCmdForcePlatformType windows' ) +app_update ${SRCDS_APPID} validate +quit
## set up 32 bit libraries
mkdir -p /mnt/server/.steam/sdk32
cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so
## set up 64 bit libraries
mkdir -p /mnt/server/.steam/sdk64
cp -v linux64/steamclient.so ../.steam/sdk64/steamclient.so
FILE=/mnt/server/Icarus/Saved/Config/ServerSettings.ini
if [ -f "$FILE" ]; then
echo "Config already exist skipping"
else
echo "Config does not yet exist, making one"
mkdir -p /mnt/server/Icarus/Saved/Config/
cd /mnt/server/Icarus/Saved/Config/
curl -sSL -o ServerSettings.ini https://raw.githubusercontent.com/RocketWerkz/IcarusDedicatedServer/main/ServerSettings.ini
fi
## install end
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"