Icarus has a free dedicated server (Steam app 2089300) designed for Windows. This guide covers a local install, a Windows or Linux VPS (via Wine, unsupported officially), ports, the service and backups. Allow 15 to 30 minutes.
Step-by-step installation
Check the machine: 4 cores, 4 to 6 GB RAM and about 5 GB of disk.
Download SteamCMD and create the server folder.
Install app 2089300 with an anonymous login using app_update 2089300 validate.
Run IcarusServer.exe -Log once to generate the config files, then stop it.
Edit Icarus\Saved\Config\WindowsServer\ServerSettings.ini (name, passwords, players).
Open 17777/UDP and 27015/UDP in the firewall and on your router.
Test on localhost (127.0.0.1:17777), then from outside; players join via the server list or the IP (adding the query port if needed).
Configure auto-start (scheduled task or systemd service).
Schedule backups of the Icarus\Saved folder and SteamCMD updates.
Requirements
Minimum seen in guides: quad-core 2 GHz CPU, 4 to 6 GB RAM, 5 GB disk. No licence key: an anonymous SteamCMD login is enough. Windows Server 2022 is a common target; exact official figures were not found in the documentation we consulted, so adjust to your player count (8 max). Client and server must run the same version.
Local install (Windows)
Unzip SteamCMD to C:\steamcmd, then run the script in this section. First start: IcarusServer.exe -Log. Then join from the game using 127.0.0.1 (and the port if needed).
C:\steamcmd\steamcmd.exe +force_install_dir C:\icarus-server +login anonymous +app_update 2089300 validate +quit
cd /d C:\icarus-server
IcarusServer.exe -Log -SteamServerName="My Icarus Server" -Port=17777 -QueryPort=27015Install on a Linux VPS / dedicated server
The server is a Windows binary: on Linux, use Wine (or a community Docker image), with no official support. Create a non-root user, install SteamCMD and Wine, force the Windows platform during install, then start the server with wine64. On Windows Server, just use the commands of the local section.
sudo adduser --disabled-password --gecos "" steam
sudo apt update && sudo apt install -y wine64 xvfb curl lib32gcc-s1
sudo -iu steam
mkdir -p ~/steamcmd ~/icarus && cd ~/steamcmd
curl -sqL https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz | tar zxf -
./steamcmd.sh +@sSteamCmdForcePlatformType windows +force_install_dir ~/icarus +login anonymous +app_update 2089300 validate +quit
cd ~/icarus && xvfb-run wine64 IcarusServer.exe -Log -Port=17777 -QueryPort=27015Ports to open
- 17777/UDP: game port (-Port=, changeable)
- 27015/UDP: Steam query port (-QueryPort=, 1024-65536)
Linux firewall (ufw)
On Ubuntu/Debian, allow SSH first so you do not lock yourself out, then the game ports.
sudo ufw allow OpenSSH
sudo ufw allow 17777/udp
sudo ufw allow 27015/udp
sudo ufw enable
sudo ufw statusWindows firewall (netsh)
In an elevated PowerShell (or administrator “cmd”):
netsh advfirewall firewall add rule name="Icarus 17777/UDP" dir=in action=allow protocol=UDP localport=17777
netsh advfirewall firewall add rule name="Icarus 27015/UDP" dir=in action=allow protocol=UDP localport=27015Provider firewall and port forwarding (NAT)
If the server is at a provider (OVH, Hetzner, Scaleway…), open the same ports in its network firewall (“security group”). For home hosting, forward the ports (NAT) from your router to the machine's fixed local IP. Test from outside (mobile data or a friend): a test from your own network proves nothing.
Auto-start and supervision
Create /etc/systemd/system/<name>.service, then: sudo systemctl daemon-reload && sudo systemctl enable --now <name>. Logs: journalctl -u <name> -f.
[Unit]
Description=Icarus dedicated server
After=network-online.target
Wants=network-online.target
[Service]
User=steam
WorkingDirectory=/home/steam/icarus
ExecStart=/usr/bin/xvfb-run /usr/bin/wine64 IcarusServer.exe -Log -Port=17777 -QueryPort=27015
Restart=on-failure
RestartSec=15
[Install]
WantedBy=multi-user.targetAuto-start on Windows (scheduled task)
Create a scheduled task triggered “At startup” that runs the launch script, with highest privileges and “Run whether user is logged on or not”.
Updates, backups and restarts
Stop the server, re-run app_update 2089300 validate, then restart. Back up Icarus\Saved (config and saves) before any major update. Schedule a daily restart if memory creeps up (ShutdownIfEmptyFor can also stop it when empty).
# Linux : sauvegarde / backup
tar czf ~/icarus-backup-$(date +%F).tar.gz -C ~/icarus Icarus/SavedList and find your server
Once your server is public, add it on https://game-rank.com/jeux/icarus (the owner's site) so players can find it, follow it and vote for it.
Troubleshooting
- Unreachable from outside but fine on localhost: the OS firewall, the provider firewall or the NAT forward is missing, or the protocol (UDP/TCP) is wrong. Check each layer one by one.
- Connection refused after a game update: client and server must run the same version. Re-run the server update, then restart it.
- The server exits immediately: start it from a console to read the error, and check free RAM, disk space and software prerequisites.
- The server is not in the list: check the query port (27015/UDP) and the -SteamServerName argument; try a direct IP connection.
- ServerSettings.ini not found: it is created on first start in Icarus\Saved\Config\WindowsServer; otherwise create it by hand. Edit it with the server stopped.
Frequently asked questions
- Does the Icarus server run on Linux?
- Not officially: it is a Windows application. It can be run with Wine or Docker, with no guarantee. Sources disagree about a possible Linux binary: check SteamDB.
- What is the server's Steam app ID?
- 2089300 (the game itself is 1149460). An anonymous SteamCMD login works.
- What is the maximum player count?
- Icarus is designed for 8 players per prospect; set MaxPlayers in ServerSettings.ini.
- How do I update the server?
- Re-run SteamCMD with app_update 2089300 validate (the launch script generator tool does this on every start).
