Sign inSign up

ludix0/icarus

By ludix0

•Updated about 11 hours ago

Dockerized dedicated server for Icarus, running via Wine + SteamCMD on Debian.

Image
0

2.0K

ludix0/icarus repository overview

⁠Icarus — Dedicated Server (Docker)

🇬🇧 English⁠ | 🇫🇷 Français⁠


⁠English

Docker container to host an Icarus dedicated server (SteamCMD App ID 2089300). Icarus has no native Linux dedicated server build, so the Windows binary runs under Wine with a virtual display (xvfb), as an unprivileged steam user. The server files are downloaded automatically via SteamCMD.

  • Docker Hub image: ludix0/icarus⁠
  • Ports used: 17777/udp + 17777/tcp (game), 27015/udp (server browser query)
⁠Requirements
  • Docker + Docker Compose
  • ~15 GB free disk space (game files, Wine prefix included)
  • Ports 17777/udp, 17777/tcp and 27015/udp forwarded on your router if you want the server reachable from the internet
mkdir -p ~/icarus && cd ~/icarus

Create a docker-compose.yml:

services:
  icarus:
    image: ludix0/icarus:latest
    container_name: icarus
    restart: unless-stopped
    volumes:
      - ./filesServer:/home/steam/server_data
      - ./steamcmd:/home/steam/steamcmd
    environment:
      - TZ=Europe/Paris
      - PUID=1000
      - PGID=1000
      - UPDATE_ON_START=true
      - SESSIONNAME=My Icarus Server
      - JOINPASSWORD=
      - MAXPLAYERS=8
      - SHUTDOWNIFNOTJOINEDFOR=300.000000
      - SHUTDOWNIFEMPTYFOR=300.000000
      - ADMINPASSWORD=changeMe
      - LOADPROSPECT=
      - CREATEPROSPECT=
      - RESUMEPROSPECT=True
      - LASTPROSPECTNAME=
      - ALLOWNONADMINSTOLAUNCHPROSPECTS=True
      - ALLOWNONADMINSTODELETEPROSPECTS=False
      - FIBERFOLIAGERESPAWN=True
      - LARGESTONESRESPAWN=True
    ports:
      - "17777:17777/udp"
      - "17777:17777/tcp"
      - "27015:27015/udp"
docker compose up -d
docker compose logs -f
⁠Method 2 — Build from source (GitHub)
git clone https://github.com/ludix0/icarus.git
cd icarus
ln -sf /path/to/your/secrets.env .env   # or create a .env with the variables below
docker build -t ludix0/icarus:latest .
docker compose up -d
⁠Environment variables
VariableRequiredDescription
TZ, PUID, PGIDNoTimezone and host user/group to run the container as
UPDATE_ON_STARTNotrue/false — update the server via SteamCMD on every restart
SESSIONNAMENoServer name shown in the in-game server browser
JOINPASSWORDNoJoin password — leave empty for a public server
MAXPLAYERSNoPlayer slot limit
ADMINPASSWORDYesAdmin password, required to use admin commands in-game
SHUTDOWNIFNOTJOINEDFORNoSeconds — auto-shutdown if no one ever joins after this delay
SHUTDOWNIFEMPTYFORNoSeconds — auto-shutdown once the server has been empty for this long
LOADPROSPECTNoName of an existing prospect (save) to load on start
CREATEPROSPECTNoName of a new prospect to create on start
RESUMEPROSPECTNoTrue/False — automatically resume the last active prospect
LASTPROSPECTNAMENoName of the last prospect (managed by the server itself)
ALLOWNONADMINSTOLAUNCHPROSPECTSNoTrue/False — allow non-admin players to launch prospects
ALLOWNONADMINSTODELETEPROSPECTSNoTrue/False — allow non-admin players to delete prospects
FIBERFOLIAGERESPAWNNoTrue/False — enable fiber foliage respawning
LARGESTONESRESPAWNNoTrue/False — enable large stone respawning
⁠Volumes
VolumeContent
/home/steam/server_dataServer binaries, Wine prefix, saves, and config (ServerSettings.ini, etc.)
/home/steam/steamcmdShared SteamCMD installation, avoids re-downloading on rebuild
⁠Ports
PortProtocolUsage
17777UDPGame traffic
17777TCPGame traffic
27015UDPSteam server browser query

⁠Français

Conteneur Docker pour héberger un serveur dédié Icarus (App ID SteamCMD 2089300). Icarus n'ayant pas de build serveur dédié Linux natif, le binaire Windows tourne sous Wine avec un affichage virtuel (xvfb), en exécutant le serveur avec un utilisateur steam non privilégié. Les fichiers du serveur sont téléchargés automatiquement via SteamCMD.

  • Image Docker Hub : ludix0/icarus⁠
  • Ports utilisés : 17777/udp + 17777/tcp (jeu), 27015/udp (requête liste de serveurs)
⁠Prérequis
  • Docker + Docker Compose
  • ~15 Go d'espace disque libre (fichiers du jeu, préfixe Wine inclus)
  • Ports 17777/udp, 17777/tcp et 27015/udp redirigés sur votre routeur si le serveur doit être accessible depuis internet
⁠Méthode 1 — Installation rapide depuis Docker Hub (recommandé)
mkdir -p ~/icarus && cd ~/icarus

Créer un docker-compose.yml :

services:
  icarus:
    image: ludix0/icarus:latest
    container_name: icarus
    restart: unless-stopped
    volumes:
      - ./filesServer:/home/steam/server_data
      - ./steamcmd:/home/steam/steamcmd
    environment:
      - TZ=Europe/Paris
      - PUID=1000
      - PGID=1000
      - UPDATE_ON_START=true
      - SESSIONNAME=Mon Serveur Icarus
      - JOINPASSWORD=
      - MAXPLAYERS=8
      - SHUTDOWNIFNOTJOINEDFOR=300.000000
      - SHUTDOWNIFEMPTYFOR=300.000000
      - ADMINPASSWORD=aChanger
      - LOADPROSPECT=
      - CREATEPROSPECT=
      - RESUMEPROSPECT=True
      - LASTPROSPECTNAME=
      - ALLOWNONADMINSTOLAUNCHPROSPECTS=True
      - ALLOWNONADMINSTODELETEPROSPECTS=False
      - FIBERFOLIAGERESPAWN=True
      - LARGESTONESRESPAWN=True
    ports:
      - "17777:17777/udp"
      - "17777:17777/tcp"
      - "27015:27015/udp"
docker compose up -d
docker compose logs -f
⁠Méthode 2 — Build depuis les sources (GitHub)
git clone https://github.com/ludix0/icarus.git
cd icarus
ln -sf /chemin/vers/votre/secrets.env .env   # ou créer un .env avec les variables ci-dessous
docker build -t ludix0/icarus:latest .
docker compose up -d
⁠Variables d'environnement
VariableObligatoireDescription
TZ, PUID, PGIDNonFuseau horaire et utilisateur/groupe hôte pour le conteneur
UPDATE_ON_STARTNontrue/false — met à jour le serveur via SteamCMD à chaque redémarrage
SESSIONNAMENonNom du serveur affiché dans la liste des serveurs en jeu
JOINPASSWORDNonMot de passe de connexion — laisser vide pour un serveur public
MAXPLAYERSNonNombre maximum de joueurs
ADMINPASSWORDOuiMot de passe admin, requis pour les commandes admin en jeu
SHUTDOWNIFNOTJOINEDFORNonSecondes — arrêt automatique si personne ne rejoint jamais après ce délai
SHUTDOWNIFEMPTYFORNonSecondes — arrêt automatique une fois le serveur vide depuis ce délai
LOADPROSPECTNonNom d'un prospect (sauvegarde) existant à charger au démarrage
CREATEPROSPECTNonNom d'un nouveau prospect à créer au démarrage
RESUMEPROSPECTNonTrue/False — reprendre automatiquement le dernier prospect actif
LASTPROSPECTNAMENonNom du dernier prospect (géré automatiquement par le serveur)
ALLOWNONADMINSTOLAUNCHPROSPECTSNonTrue/False — autoriser les joueurs non-admin à lancer des prospects
ALLOWNONADMINSTODELETEPROSPECTSNonTrue/False — autoriser les joueurs non-admin à supprimer des prospects
FIBERFOLIAGERESPAWNNonTrue/False — activer la repousse de la végétation fibreuse
LARGESTONESRESPAWNNonTrue/False — activer la repousse des grosses pierres
⁠Volumes
VolumeContenu
/home/steam/server_dataBinaires du serveur, préfixe Wine, sauvegardes et configuration (ServerSettings.ini, etc.)
/home/steam/steamcmdInstallation SteamCMD partagée, évite un nouveau téléchargement à chaque rebuild
⁠Ports
PortProtocoleUsage
17777UDPTrafic de jeu
17777TCPTrafic de jeu
27015UDPRequête liste de serveurs Steam

Tag summary

Content type

Image

Digest

sha256:422b40332…

Size

627.5 MB

Last updated

about 11 hours ago

docker pull ludix0/icarus