sandstorm-server/README.md

75 lines
3.9 KiB
Markdown
Raw Normal View History

2021-04-25 08:17:32 +00:00
## Insurgency: Sandstorm Docker Container
2021-04-28 06:34:10 +00:00
[![Docker Image CI](https://github.com/AndrewMarchukov/insurgency-sandstorm-server-dockerize/actions/workflows/docker-image.yml/badge.svg)](https://github.com/AndrewMarchukov/insurgency-sandstorm-server-dockerize/actions/workflows/docker-image.yml)
2021-04-25 08:17:32 +00:00
2018-12-18 16:51:57 +00:00
![](https://github.com/AndrewMarchukov/insurgency-sandstorm-server-dockerize/blob/master/sandstorm-logo.png)
![](https://github.com/AndrewMarchukov/insurgency-sandstorm-server-dockerize/blob/master/docker-logo.jpg)
2021-04-24 08:20:09 +00:00
2021-04-24 08:20:52 +00:00
This repository contains a docker image with a dedicated server for Insurgency Sandstorm that you can fully customise to your need for COOP and PVP servers.
2021-04-24 08:20:09 +00:00
This image will be build weekly so you dont have to update anything inside a container. I tried to build the image as “best-practice” as possible and to document everything for you.
2021-04-25 08:17:32 +00:00
#### Official documentation: [Sandstorm Server Admin Guide](https://sandstorm-support.newworldinteractive.com/hc/en-us/articles/360049211072-Server-Admin-Guide)
## How to build Insurgency Sandstorm dedicated server
2018-12-18 13:59:42 +00:00
cd directory where ```Dockerfile```
2021-04-24 08:20:09 +00:00
```docker build -t andrewmhub/insurgency-sandstorm:latest .``` or get it on docker hub ```docker pull andrewmhub/insurgency-sandstorm```
2021-04-25 08:17:32 +00:00
## How to launch Insurgency Sandstorm dedicated server
2021-04-18 07:43:08 +00:00
Running multiple instances (use PORT, QUERYPORT and HOSTNAME) and LAUNCH_SERVER_ENV in modmap.env:
2018-12-18 13:59:42 +00:00
```
2021-04-18 07:33:16 +00:00
docker run -d --restart always --env-file /home/user/coop-modmap/modmap.env \
2021-04-25 16:32:40 +00:00
--name sandstorm-modmap --net=host \
2021-04-18 07:33:16 +00:00
-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 \
2021-04-24 13:27:48 +00:00
-v /home/user/coop-modmap/config/txt:/home/steam/steamcmd/sandstorm/Insurgency/Config/Server:ro andrewmhub/insurgency-sandstorm:latest
2018-12-18 13:59:42 +00:00
```
2021-04-24 08:22:48 +00:00
Examples config files see in directory ```config```
2018-12-18 16:30:26 +00:00
2021-04-22 18:59:13 +00:00
### docker-compose.yml example
```dockerfile
version: '3.7'
services:
insurgency-sandstorm:
image: andrewmhub/insurgency-sandstorm:latest
container_name: insurgency-sandstorm
restart: unless-stopped
2021-04-22 19:00:46 +00:00
env_file:
- .env
2021-04-22 18:59:13 +00:00
volumes:
- /home/user/coop-modmap/config/ini:/home/steam/steamcmd/sandstorm/Insurgency/Saved/Config/LinuxServer:ro
2021-04-24 13:27:48 +00:00
- /home/user/coop-modmap/config/txt:/home/steam/steamcmd/sandstorm/Insurgency/Config/Server:ro
2021-04-22 18:59:13 +00:00
- /home/user/coop-modmap/Mods:/home/steam/steamcmd/sandstorm/Insurgency/Mods:rw
ports:
- "${PORT}:${PORT}"
- "${QUERYPORT}:${QUERYPORT}"
```
2021-04-22 19:00:46 +00:00
### .env example
```.env
HOSTNAME=[ISMC] MOD MAPS ONLY @120hz
PORT=12345
QUERYPORT=54321
LAUNCH_SERVER_ENV=-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
```
2021-04-24 08:20:09 +00:00
### Tips and Tricks
#### Server auto update
Get restart script example
2021-04-24 08:26:11 +00:00
2021-04-24 08:20:09 +00:00
in the end curl get last manifest server version on steam
```
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 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
```