Insurgency: Sandstorm docker server
10K+
This image will be built any time there are updates to the steam app or upstream docker image, so you don’t have to update anything inside a container. I tried to build the image as “best-practice” as possible and to document everything for you.
cd directory where Dockerfile
docker build -t andrewmhub/insurgency-sandstorm:latest . or get it on docker hub docker pull andrewmhub/insurgency-sandstorm
Running multiple instances (use PORT, QUERYPORT and HOSTNAME) and LAUNCH_SERVER_ENV in modmap.env:
docker run -d --restart unless-stopped --env-file /home/user/coop-modmap/modmap.env \
--name sandstorm-modmap --net=host \
-v /home/user/coop-modmap/Mods:/home/steam/steamcmd/sandstorm/Insurgency/Mods:rw \
-v /home/user/coop-modmap/config/ini:/home/steam/steamcmd/sandstorm/Insurgency/Saved/Config/LinuxServer:ro \
-v /home/user/coop-modmap/config/txt:/home/steam/steamcmd/sandstorm/Insurgency/Config/Server:ro andrewmhub/insurgency-sandstorm:latest
All game data will be stored on disk
docker run -d --restart unless-stopped --env-file /home/user/coop-modmap/modmap.env \
--name sandstorm-modmap --net=host \
-v /home/user/my_dir:/home/steam/steamcmd/sandstorm:rw \
andrewmhub/insurgency-sandstorm:lite
Examples config files in directory config
Optional launch options:
-NoEAC have problem with EAC just disables it
-nominidumps some crash dump handler that uploads crash information to insurgency devs servers this option disables it
version: '3.7'
services:
insurgency-sandstorm:
image: andrewmhub/insurgency-sandstorm:latest
container_name: insurgency-sandstorm
restart: unless-stopped
env_file:
- .env
volumes:
- /home/user/coop-modmap/config/ini:/home/steam/steamcmd/sandstorm/Insurgency/Saved/Config/LinuxServer:ro
- /home/user/coop-modmap/config/txt:/home/steam/steamcmd/sandstorm/Insurgency/Config/Server:ro
- /home/user/coop-modmap/Mods:/home/steam/steamcmd/sandstorm/Insurgency/Mods:rw
ports:
- "${PORT}:${PORT}/udp"
- "${QUERYPORT}:${QUERYPORT}/udp"
HOSTNAME=[ISMC] MOD MAPS ONLY @120hz
PORT=12345
QUERYPORT=54321
LAUNCH_SERVER_ENV=LAUNCH_SERVER_ENV=Ministry?Scenario=Scenario_Ministry_Checkpoint_Security?Game=CheckpointHardcore?password=MyPa$$word?MaxPlayers=10 -MapCycle=MapCycle -Mods -ModList=Mods.txt -mutators="ISMCarmory_legacy,ImprovedAI,NoRestrictedArea,ScaleBotAmount,AdvancedSupplyPoints,WelcomeMessage,JoinLeaveMessage,FpLegs,JumpShoot" -GameStatsToken=my_token -GameStats -GSLTToken=my_token -ModDownloadTravelTo=TORO?Scenario=Scenario_TORO_Checkpoint_Security
Autoupdate game server. This script will keep your game servers automaticly updated updating intervals announce the server is shutting down for updates
Requirements: rcon-cli
wget https://github.com/gorcon/rcon-cli/releases/download/v0.10.1/rcon-0.10.1-amd64_linux.tar.gz
tar -xvzf rcon-0.10.1-amd64_linux.tar.gz
cp rcon-0.10.1-amd64_linux/rcon /usr/local/bin/
Get restart script example
wget --no-check-certificate -O /opt/restart-ins.sh https://raw.githubusercontent.com/AndrewMarchukov/insurgency-sandstorm-server-dockerize/master/AutoUpdater/restart-ins.sh
chmod +x /opt/restart-ins.sh
The next script make version comparison if game server version changed in steam or ISMC mod version you insurgency sandstorm server will automatically restarted and get update
wget --no-check-certificate -O /opt/check-manifest.sh https://raw.githubusercontent.com/AndrewMarchukov/insurgency-sandstorm-server-dockerize/master/AutoUpdater/check-manifest.sh
chmod +x /opt/check-manifest.sh
Get systemd unit daemon
wget --no-check-certificate -O /etc/systemd/system/my-server-check.service https://raw.githubusercontent.com/AndrewMarchukov/insurgency-sandstorm-server-dockerize/master/AutoUpdater/my-server-check.service
systemctl daemon-reload
systemctl enable my-server-check.service
systemctl start my-server-check.service
if you launch multiple servers on same host you can save some memory, on 2 game servers more than 1gb memory saved.
Make sure that parameter set on 1 after host reboot
echo 1 > /sys/kernel/mm/ksm/run
and add launch options -useksm -ksmmergeall then restart servers
wait some amount of time and check statistics grep -H '' /sys/kernel/mm/ksm/*
pages_shared - how many shared pages are being used
pages_sharing - how many more sites are sharing them i.e. how much saved
pages_unshared - how many pages unique but repeatedly checked for merging
pages_sharing*4096/1024/1024=how much memory saved
So, in your example, 264281 pages have been found to be shareable. KSM saved you about 1032 MB of memory.
Content type
Image
Digest
sha256:569e64ab4…
Size
4.2 GB
Last updated
13 days ago
docker pull andrewmhub/insurgency-sandstorm