debian
,debian-bookworm
,latest
(bookworm/Dockerfile)debian-bullseye
(bullseye/Dockerfile)alpine
(alpine/Dockerfile)
Important
Builds are set to execute regularly when a new commit to the Box64 repo or a new version of DepotDownloader has been detected. Use a specific tag with a commit hash if you want to pin a specific release.
DepotDownloader utilizes SteamRE's SteamKit2 library to provide an interface similar to steamcmd. SteamKit2 is a .NET library designed to interoperate with Valve's Steam network. It aims to provide a simple, yet extensible, interface to perform various actions on the network (Source: DepotDownloader GitHub). This image can be used as a base image for Steam-based dedicated servers as an alternative to cm2network/steamcmd.
One of the biggest challenges when it comes to running dedicated servers from Steam is steamcmd. Valve ships steamcmd (and steam) as a 32-bit binary. That means, machines that has no 32-bit support (like the M-series Macs) will struggle to run steamcmd reliably even with emulation. Meanwhile, DepotDownloader can be built for any architecture as it is open-source and can pretty much do all we need for dedicated servers.
For the game servers themselves, Box64 has come a long way and is in active development to expand its compatibility list. As an example, it can run a Palworld Dedicated Server! ARM64 versions of this image has a variety of Box64 binaries included. For tweaking, environment variables could be used for Box64.
Important
Images are hosted in ghcr.io (ghcr.io/sonroyaalmerol/steam-depot-downloader) and Docker Hub (sonroyaalmerol/steam-depot-downloader).
Whilst it's recommended to use this image as a base image of other game servers, you can also run it in an interactive shell using the following command:
$ docker run -it --name=steamdd ghcr.io/sonroyaalmerol/steam-depot-downloader bash
$ DepotDownloader -app 403240 -dir /home/steam/squad-dedicated
This can prove useful if you are just looking to test a certain game server installation.
Running AMD64-based dedicated servers should be as easy as shown below:
# <gameserver-start> should be a executable binary, not a bash script.
# If you really need to execute a bash script, you need to add an x86_64 version of bash
# inside the container and set the BOX64_BASH env var to its path.
# See https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md#box64_bash-
/usr/local/bin/box64 <gameserver-start> <gameserver-args>
Some dedicated servers might require specific libraries to run. Make sure to figure those out and add them within the container. To ensure Box64 includes those libraries, you may specify BOX64_LD_LIBRARY_PATH
as an environment variable.
This image includes the nano
text editor for convenience.
For better Box64 compatibility, some dedicated servers need specific configurations for stability. The combination listed below might give you the best chance in exchange for performance. You may adjust them as needed. No custom Box64 configurations have been set for this image by default. See Box64 usage documentation for more info.
# Set these as env variables within the container
export BOX64_DYNAREC_BIGBLOCK=0
export BOX64_DYNAREC_SAFEFLAGS=2
export BOX64_DYNAREC_STRONGMEM=3
export BOX64_DYNAREC_FASTROUND=0
export BOX64_DYNAREC_FASTNAN=0
export BOX64_DYNAREC_X87DOUBLE=1
This image currently includes the following Box64 build variants for the following devices:
- Generic [
generic
] - Raspberry Pi 5 [
rpi5
] - M1 (M-Series) Mac [
m1
] - ADLink Ampere Altra (Oracle ARM CPUs) [
adlink
]
You may specify which variant to use with the ARM64_DEVICE
environment variable. generic
variant will be used by default.
For more build variants, please create a new issue with your reasoning.
The steam-depot-downloader
images come in two flavors, each designed for a specific use case.
This is the defacto image. As the tag describes, this variant has a Debian base image. If you want the best compatibility with servers that require glibc
, this will be your best friend.
This is not yet available
This is a variant that has a Alpine base image. I suggest you use this image if your use-case does not necessarily need the libraries that come with Debian and needs a smaller footprint at the same time.