This project provides a Docker container for the Insurgency: Sandstorm game server and demonstrates its use in a docker compose environment.
Since there were no well-documented, easy-to-use Insurgency: Sandstorm docker images, I created one myself.
- Is built nightly
- Updates and validates the game data to start.
I recommend using docker compose.
Check docker-compose.yml
if you are interested. The configuration of the game server should be done in the .env
file.
To get started, copy .env.example
to .env
.
cp .env.example .env
Adjust the values in the .env
to your needs and start:
docker-compose pull && docker-compose up -d
To delete the server with all persisted data and volumes (mods):
docker-compose down --volumes
Variable name | description | default value |
---|---|---|
SERVER_NAME | The name of the server as it appears on the server browser (replacing My Server with the name of your choice) | empty |
START_MAP | The start map | empty |
SCENARIO | You may define an entry with an override game mode as some game modes can share scenarios. | empty |
MAX_PLAYERS | Maximum number of players that can join the server. On coop servers, this is only the number of human players. | empty |
GSLT_TOKEN | In order for your server to be able to authenticate with the stats server, see description below. | empty |
GAME_STATS_TOKEN | Any community server is capable of hosting a stats-enabled game. See description below. | empty |
ADMINS | A comma separated list of 64-bit Steam IDs (aka steamID64) to be admin on the server. See Description below. | empty |
MESSAGE_OF_THE_DAY | The server message of the day | empty |
SKIP_UPDATE_VALIDATION | Set this to any value to skip installed steam game data update and validation | empty |
ENABLE_MODS | Set this to any value to enable mod integration | empty |
MOD_IO_TOKEN | To be able to communicate with mod.io. See description below | empty |
MODS | Comma separated list of mod ids, e.g.: 150867,1337 | empty |
MOD_DOWNLOAD_TRAVEL_TO | Name of a mod map to change after mod download | empty |
MUTATORS | Comma separated list of mutators, e.g.: ISMC_Hardcore,AllYouCanEat | empty |
GAME_INI | Fill this value to with entries to be added to the Game.ini. See example in .env.example | empty |
MAP_CYCLE | Fill this value to with entries to be added to the GameCycle.txt See example in .env.ismc.example | empty |
- Visit the GameStats Token Generator and authenticate through your Stream profile.
- Click on "Generate Token" which will create you a GameStats token.
- Place the generated token in the GAME_STATS_TOKEN variable of the
.env
file
- Visit the Steam Game Server Account Management and authenticate through your Stream profile.
- Create a new game server account.
- Place the generated token in the GSLT_TOKEN variable of the
.env
file
- Visit the STEAMID I/O and authenticate through your Stream profile.
- Press lookup
- Place the steamID64, comma separated, in the ADMINS variable of the
.env
file
- Visit the mod.io and authenticate through your Stream profile.
- Click your username at the top right, and click
API Access
from the left navigation. - Under OAuth 2 Management, under Generate Access Token, enter a name to give your token and give it read access (write access is not needed) and click Create Token.
- Place the generated token in the MOD_IO_TOKEN variable of the
.env
file
If you want to use mods, you must set the following .env values:
ENABLE_MODS=true
MOD_IO_TOKEN=xxx
MODS=mod_id_1,mod_id_2,mod_id_3
MOD_DOWNLOAD_TRAVEL_TO=map_to_travel_to
MUTATORS=mutator_name_1,mutator_name_2
- Insurgency: Sandstorm dedicated server guide: https://sandstorm-support.newworldinteractive.com/hc/en-us/articles/360049211072-Server-Admin-Guide
- SteamCMD Wiki: https://developer.valvesoftware.com/wiki/SteamCMD
- ISMC Mod Guide: https://insurgencysandstorm.mod.io/guides/ismcmod-installation-guide
- Inspired by: https://github.com/AndrewMarchukov/insurgency-sandstorm-server-dockerize
- Built from: https://github.com/RouHim/insurgency-sandstorm-docker