Table of Contents

Docker Deployment

Use the Docker release package when you want to run the dedicated server in a container instead of unpacking the server directly onto a Windows host.

The Docker release assets intentionally do not ship:

  • MelonLoader files
  • DedicatedServerMod_Mono_Server.dll
  • a preinstalled copy of Schedule I

That keeps the Docker package small and avoids redistributing loader payloads inside the Docker template.

What To Download

Download both of these assets from the same release:

  1. Docker.zip
  2. Server.zip

Docker.zip contains:

  • Dockerfile
  • run.sh
  • .dockerignore
  • package-local Docker instructions

Server.zip contains the server mod DLL that the image needs during docker build.

Prepare The Build Context

Extract Docker.zip to a working folder, then copy Mods/DedicatedServerMod_Mono_Server.dll from Server.zip into that same folder so the layout looks like this:

Docker/
  .dockerignore
  Dockerfile
  run.sh
  README.md
  DedicatedServerMod_Mono_Server.dll

The Docker image downloads MelonLoader during docker build, so users should not add MelonLoader files manually.

Build The Image

docker build -t s1ds-dedicated-server .

If DedicatedServerMod_Mono_Server.dll is missing from the folder, the build will fail during the Docker COPY step.

First Run

The first container start installs Schedule I through SteamCMD, so provide Steam credentials and persist the game directory:

docker run --name s1ds \
  -p 38465:38465/udp \
  -p 27016:27016/udp \
  -e STEAM_USER=your_steam_login \
  -e STEAM_PASS=your_steam_password \
  -e STEAM_BRANCH=alternate \
  -v s1ds-game:/home/steam/game \
  s1ds-dedicated-server

Optional environment variables:

  • STEAM_GUARD for Steam Guard prompts
  • FORCE_STEAMCMD_UPDATE=true to force the next startup to refresh the game install

After First Boot

  • Edit the generated server_config.toml in the mounted game directory
  • Keep your save path, auth settings, and query port aligned with your deployment
  • Rebuild the image with a newer DedicatedServerMod_Mono_Server.dll when upgrading to a new release

Container Notes

  • SteamGameServer is the preferred authentication provider for containerized deployments
  • SteamNetworkingSockets is the preferred messaging backend for containerized deployments
  • SteamP2P should not be used in Docker
  • The image reapplies MelonLoader and the server mod DLL on container start because SteamCMD validation may overwrite game files