Compare commits
72 Commits
garrysmod
...
corekeeper
Author | SHA1 | Date | |
---|---|---|---|
13a361314e | |||
5be2e5af76 | |||
5b5bf0e312 | |||
1354aceda7 | |||
8d70e52da9
|
|||
e118768023
|
|||
9e82f6beb3
|
|||
54cee6d03e
|
|||
ab90a1de3e
|
|||
e6cc01f5d2
|
|||
1711b8176c
|
|||
753a64f008
|
|||
7f3ac0a361
|
|||
9c0e67dd4f
|
|||
35af39d4b9
|
|||
dbd4213520
|
|||
48f75d0f3b
|
|||
a09fc7582e
|
|||
0ca92a55b9
|
|||
c0a6a2a0ed
|
|||
82138aa2af
|
|||
e506bf3fba
|
|||
ca0c8fefe6
|
|||
e7c87bd8f1
|
|||
2432940e23
|
|||
89598a9710
|
|||
83992eb6cb
|
|||
5e4b466e76
|
|||
72a0e28c71
|
|||
82dea2c6af
|
|||
16d782c55e
|
|||
58f34acf41
|
|||
f0ea49bad6 | |||
d25c781c22 | |||
056f05756a | |||
1c79a312d2 | |||
41df27576a | |||
ad3762e4c0 | |||
821c430387 | |||
37e416a7b1 | |||
8d4d03b438 | |||
20a77cae00 | |||
2e9463a721 | |||
d62dca657f | |||
a7a8798ea8 | |||
94a9d103b6 | |||
25509af841 | |||
a82efe30be | |||
704525d91c | |||
252605ca63 | |||
eb266c39f6 | |||
57865f566b | |||
d22246d105 | |||
f0137cf7b6 | |||
0f592029f1 | |||
8d283cfe53 | |||
becf5dc1a7 | |||
4278fc8884 | |||
700351ff61 | |||
ed40f24e06 | |||
8b70b11884 | |||
d71ca52efe | |||
075799da02 | |||
1fea73c677 | |||
d8471aadf3 | |||
500275b668 | |||
f603c5a482 | |||
20e2a492b6 | |||
1af4324c74 | |||
83c8ce9cc4 | |||
5fe96b0b12 | |||
d755ec14fa |
1
.github/FUNDING.yml
vendored
Normal file
1
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
github: ich777
|
@@ -4,15 +4,17 @@ LABEL org.opencontainers.image.authors="admin@minenet.at"
|
||||
LABEL org.opencontainers.image.source="https://github.com/ich777/docker-steamcmd-server"
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get -y install --no-install-recommends lib32gcc-s1 lib32stdc++6 && \
|
||||
apt-get -y install --no-install-recommends lib32gcc-s1 lib32stdc++6 xvfb screen libxi6 && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV DATA_DIR="/serverdata"
|
||||
ENV STEAMCMD_DIR="${DATA_DIR}/steamcmd"
|
||||
ENV SERVER_DIR="${DATA_DIR}/serverfiles"
|
||||
ENV WORLD_INDEX=0
|
||||
ENV WORLD_NAME="Core Keeper Docker"
|
||||
ENV GAME_ID="template"
|
||||
ENV GAME_NAME="template"
|
||||
ENV GAME_PARAMS="template"
|
||||
ENV GAME_NAME=""
|
||||
ENV GAME_PARAMS=""
|
||||
ENV GAME_PORT=27015
|
||||
ENV VALIDATE=""
|
||||
ENV UMASK=000
|
||||
|
34
README.md
34
README.md
@@ -1,40 +1,42 @@
|
||||
# SteamCMD in Docker optimized for Unraid
|
||||
This Docker will download and install SteamCMD. It will also install Garry's Mod and run it.
|
||||
This Docker will download and install SteamCMD. It will also install CoreKeeper and run it.
|
||||
|
||||
**Update Notice:** Simply restart the container if a newer version of the game is available.
|
||||
**GameID:** Your GameID will be displayed in the log after the server successfully started.
|
||||
|
||||
## Env params
|
||||
**Port Forwarding:** You don't have to forward any ports for this game because it uses the Steam Network and the GameID to establish the connection.
|
||||
|
||||
Update Notice: Simply restart the container if a newer version of the game is available.
|
||||
|
||||
## Example Env params
|
||||
| Name | Value | Example |
|
||||
| --- | --- | --- |
|
||||
| STEAMCMD_DIR | Folder for SteamCMD | /serverdata/steamcmd |
|
||||
| SERVER_DIR | Folder for gamefile | /serverdata/serverfiles |
|
||||
| GAME_ID | The GAME_ID that the container downloads at startup. If you want to install a static or beta version of the game change the value to: '4020 -beta YOURBRANCH' (without quotes, replace YOURBRANCH with the branch or version you want to install). | 4020 |
|
||||
| GAME_NAME | SRCDS gamename | garrysmod |
|
||||
| GAME_PARAMS | Values to start the server | -secure +maxplayers 12 +map gm_flatgrass |
|
||||
| GAME_ID | The GAME_ID that the container downloads at startup. If you want to install a static or beta version of the game change the value to: '1963720 -beta YOURBRANCH' (without quotes, replace YOURBRANCH with the branch or version you want to install). | 1963720 |
|
||||
| WORLD_NAME | Enter your prefered world name here. | Core Keeper Docker |
|
||||
| WORLD_INDEX | Only change when you know what you are doing! | cstrike |
|
||||
| GAME_PARAMS | Values to start the server | -secure +maxplayers 32 +map de_dust2 |
|
||||
| UID | User Identifier | 99 |
|
||||
| GID | Group Identifier | 100 |
|
||||
| GAME_PORT | Port the server will be running on | 27015 |
|
||||
| VALIDATE | Validates the game data | true |
|
||||
| USERNAME | Leave blank for anonymous login | blank |
|
||||
| PASSWRD | Leave blank for anonymous login | blank |
|
||||
|
||||
## Run example
|
||||
```
|
||||
docker run --name GarrysMod -d \
|
||||
-p 27015:27015 -p 27015:27015/udp \
|
||||
--env 'GAME_ID=4020' \
|
||||
--env 'GAME_NAME=garrysmod' \
|
||||
--env 'GAME_PORT=27015' \
|
||||
--env 'GAME_PARAMS=-secure +maxplayers 12 +map gm_flatgrass' \
|
||||
docker run --name CoreKeeper -d \
|
||||
--env 'GAME_ID=1963720' \
|
||||
--env 'WORLD_NAME=Core Keeper Docker' \
|
||||
--env 'WORLD_INDEX=0' \
|
||||
--env 'UID=99' \
|
||||
--env 'GID=100' \
|
||||
--volume /path/to/steamcmd:/serverdata/steamcmd \
|
||||
--volume /path/to/garrysmod:/serverdata/serverfiles \
|
||||
ich777/steamcmd:garrysmod
|
||||
--volume /path/to/corekeeper:/serverdata/serverfiles \
|
||||
ich777/steamcmd:corekeeper
|
||||
```
|
||||
|
||||
This Docker was mainly edited for better use with Unraid, if you don't use Unraid you should definitely try it!
|
||||
|
||||
This Docker is forked from mattieserver, thank you for this wonderfull Docker.
|
||||
|
||||
### Support Thread: https://forums.unraid.net/topic/79530-support-ich777-gameserver-dockers/
|
||||
#### Support Thread: https://forums.unraid.net/topic/79530-support-ich777-gameserver-dockers/
|
4
scripts/start-Xvfb.sh
Normal file
4
scripts/start-Xvfb.sh
Normal file
@@ -0,0 +1,4 @@
|
||||
until Xvfb :99 -screen 0 1x1x24 -nolisten tcp; do
|
||||
echo "Xvfb server crashed with exit code $?. Respawning.." >&2
|
||||
sleep 1
|
||||
done
|
@@ -51,8 +51,36 @@ else
|
||||
fi
|
||||
|
||||
echo "---Prepare Server---"
|
||||
chmod -R ${DATA_PERM} ${DATA_DIR}
|
||||
if [ ! -f ${DATA_DIR}/.steam/sdk64/steamclient.so ]; then
|
||||
if [ ! -d ${DATA_DIR}/.steam/sdk64 ]; then
|
||||
mkdir -p ${DATA_DIR}/.steam/sdk64
|
||||
fi
|
||||
cp -R ${STEAMCMD_DIR}/linux64/* ${DATA_DIR}/.steam/sdk64/
|
||||
fi
|
||||
echo "---Checking for old display lock files---"
|
||||
find /tmp -name ".X99*" -exec rm -f {} \; > /dev/null 2>&1
|
||||
echo "---Checking for old logfiles---"
|
||||
find ${SERVER_DIR} -name "XvfbLog.*" -exec rm -f {} \; > /dev/null 2>&1
|
||||
chmod +x ${SERVER_DIR}/CoreKeeperServer
|
||||
if [ -f ${SERVER_DIR}/steamclient.so ]; then
|
||||
rm ${SERVER_DIR}/steamclient.so
|
||||
fi
|
||||
echo "---Server ready---"
|
||||
echo "---Starting Xvfb server---"
|
||||
screen -S Xvfb -L -Logfile ${SERVER_DIR}/XvfbLog.0 -d -m /opt/scripts/start-Xvfb.sh
|
||||
sleep 3
|
||||
|
||||
echo "---Start Server---"
|
||||
${SERVER_DIR}/srcds_run -game ${GAME_NAME} ${GAME_PARAMS} -console +port ${GAME_PORT}
|
||||
export DISPLAY=:99
|
||||
cd ${SERVER_DIR}
|
||||
if [ -f ${SERVER_DIR}/GameID.txt ]; then
|
||||
rm -f ${SERVER_DIR}/GameID.txt
|
||||
fi
|
||||
${SERVER_DIR}/CoreKeeperServer -batchmode -logfile ${SERVER_DIR}/CoreKeeperServerLog.txt -world ${WORLD_INDEX} -worldname "${WORLD_NAME}" -datapath "${SERVER_DIR}/Save" ${GAME_PARAMS} 2 >/dev/null &
|
||||
sleep 2
|
||||
screen -S watchdog -d -m /opt/scripts/start-watchdog.sh
|
||||
while [ ! -f ${SERVER_DIR}/GameID.txt ]; do
|
||||
sleep 1
|
||||
done
|
||||
echo "Server Game ID: $(cat ${SERVER_DIR}/GameID.txt 2>/dev/null)"
|
||||
sleep infinity
|
8
scripts/start-watchdog.sh
Normal file
8
scripts/start-watchdog.sh
Normal file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
killpid="$(pidof CoreKeeperServer)"
|
||||
while true
|
||||
do
|
||||
tail --pid=$killpid -f /dev/null
|
||||
kill $(pidof sleep)
|
||||
exit 0
|
||||
done
|
@@ -26,8 +26,8 @@ chown -R ${UID}:${GID} ${DATA_DIR}
|
||||
|
||||
echo "---Starting...---"
|
||||
term_handler() {
|
||||
kill -SIGTERM "$killpid"
|
||||
wait "$killpid" -f 2>/dev/null
|
||||
kill -SIGTERM $(pidof CoreKeeperServer)
|
||||
tail --pid="$(pidof CoreKeeperServer)" -f 2>/dev/null
|
||||
exit 143;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user