Running an Icarus Dedicated Server on Linux using Docker

In this tutorial, we will show you how to self-host a dedicated server for Icarus on Linux using Docker.

Icarus Dedicated Server Linux Docker

Icarus is a multiplayer survival game where you and up to 7 other players launch from a space station to complete a given mission. If you don’t return in time, you will lose all your progress.

One downside of Icarus is that they only provide a dedicated server for the Windows operating system. However, thanks to the Wine compatibility layer, this won’t stop us from getting it to run on Linux.

To save having to set up Wine on Linux, we will be making use of a Docker container by Nerodon. This container handles all the hard parts of getting the Icarus Dedicated Server running on Linux.

Please note that the Icarus server can be quite memory intensive. You may require up to 16GB of RAM, but this larger depends on how many players will be on the one server.

Installing and Running an Icarus Dedicated Server on Linux

In the following sections, we will walk you through installing and running a dedicated server for Icarus on Linux.

All you need for these steps is a machine with enough resources and the capability to run Docker.

Setting up Docker

1. We will utilize a Docker container to make setting up the Icarus Dedicated server a much easier process on Linux. This container makes things much easier as all the software required is already set up for us, there is no messing around required outside of installing Docker and writing a simple Compose file.

If you haven’t installed Docker previously, we highly recommend following our installing Docker on Linux guide. It will have this great tool up and running in no time.

https://pimylifeup.com/linux-docker-install/

Preparing Linux to Run the Icarus Dedicated Server

2. Once you have Docker installed, we can create a folder to store the Icarus Dedicated Server.

To create this directory, we will be utilizing the mkdir command within the terminal.

sudo mkdir -p /opt/stacks/icarus

3. After making this new directory, you will want to use the cd command to swap to it.

cd /opt/stacks/icarus

Write a Docker Compose File for the Icarus Server on Linux

4. At this point, we can move on to writing a Docker Compose file for the Icarus Dedicated Server by using the command below. We are using Nano as it is one of the easier terminal-based text editors to use.

A Compose file is basically a set of instructions Docker will use to start and manage a container.

sudo nano compose.yaml

5. Within this Compose file, fill out the following information.

While typing out this file, there are some placeholders that you must replace. These set things such as the server name, password, and more.

  • <SERVERNAME>: Replace this first placeholder with the name that you want to use for your server.
  • <PASSWORD>: Next, set a password for your Icarus Dedicated Server to stop random people from accessing your game.
  • <ADMINPASSWORD>: Finally, to make managing Icarus easier you will want to specify a password for the admin.
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=<SERVERNAME>
      - BRANCH=public
      - PORT=17777
      - QUERYPORT=27015
      - JOIN_PASSWORD=<PASSWORD>
      - ADMIN_PASSWORD=<ADMINPASSWORD>
      - STEAM_USERID=1000
      - STEAM_GROUPID=1000
      - STEAM_ASYNC_TIMEOUT=60

6. After filling out this file, you can save and quit by pressing CTRL + X, Y, and then ENTER.

Starting up the Icarus Dedicated Server Docker Container on Linux

7. We are finally at the point where all we need to do to start up the Icarus Dedicated Server on Linux is to run the following command.

Docker will immediately download and start up the Icarus container we rely on. This container can take a few minutes to start as it will need to download the Icarus server itself before it can start.

docker compose up -d

8. At this point, your Icarus server should be up and running and ready to play.

If you are having trouble connecting to your server, ensure you have allowed ports 17777 and 27015 through your firewall. Additionally, if you are running this from your home, you may need to port forward both of these ports.

Updating to the Latest Version of the Icarus Server

9. Thanks to the Docker container we are using, updating your Icarus Dedicated Server on Linux is a fairly easy process.

You will first want to change to the directory where we wrote the Compose file.

cd /opt/stacks/icarus

10. Once you are in this folder, all we need to do to get the Icarus server to self-update is restart the container it’s running in.

This container has been set up to automatically check for new updates every time it starts.

docker compose restart

Updating the Icarus Dedicated Sever Container

The Docker container we use to run the Icarus Dedicated Server on Linux should only occasionally require updates. It has been written so that most of the heavy lifting is handled at run time, and the software it uses is all relatively stable.

However, if a new version of the Docker container has been released, updating is a relatively straightforward process.

1. To update the Docker container, you must change to the directory where we wrote the “Compose” file.

If you have been following our guide, you can change to the right folder by running the command below.

cd /opt/stacks/icarus

2. Once we are in the right spot, we can tell Docker to pull the latest version of the Icarus dedicated server container to our system.

This will pull a new version of the server container if a new image is available. However, this command will not update any existing containers.

docker compose pull

3. To get Docker to move our Icarus Dedicated Server over to the new version of the container, all we need to do is run the following command.

Docker will detect if a new image is available and, automatically stop the running container and restart it using the new release.

docker compose up -d

Conclusion

Hopefully, by this point in the tutorial, you will have successfully managed to get an Icarus Dedicated server running on Linux.

While we can’t run this server natively on Linux, there are luckily great workarounds available. The one we chose for this guide is to use a Docker container. As you can see, this Docker container makes running an Icarus server on Linux a straightforward process.

Please feel free to post a comment below if you have had any issues with getting this game server to run.

If you liked this guide, we recommend exploring our many other game server tutorials to see what else you can host.

Leave a Reply

Your email address will not be published. Required fields are marked *