Compare commits
146 Commits
Author | SHA1 | Date | |
---|---|---|---|
30fb3e8a14 | |||
fbf1757392
|
|||
0b1ebdf9fb
|
|||
e07267b93a
|
|||
6522b64982
|
|||
db4e2303d2
|
|||
600f9caadc
|
|||
892816be7e
|
|||
46fcf3d769
|
|||
6246c02044
|
|||
a2345b552e
|
|||
fce9821f43
|
|||
173baf4d96
|
|||
f409228bb3
|
|||
d3ee5490d7
|
|||
7d4fa8812d
|
|||
b7587386f0 | |||
92b4b95d2f | |||
dc9b89b4fe | |||
4da4ec529b | |||
9dfefcfaa2 | |||
3c68953195 | |||
cf68bc167e | |||
a8ea46b8e4 | |||
9bec7ac022 | |||
cca74037c4 | |||
c311c05624 | |||
f8aadf5e4d | |||
489f4b9a49 | |||
3194dbd827 | |||
254c3c96cb | |||
65f5dea1bb | |||
5145e61e53 | |||
2c345b030d | |||
97e49615d5 | |||
93f0b26ec5 | |||
dc026e81f2 | |||
bd366b9e69 | |||
1260871de0 | |||
6c8f0f817d | |||
2629d7d98d | |||
837440948d | |||
65afde7315 | |||
cc36c92f85 | |||
1cdabe044b | |||
4450c358cd | |||
58488e2643 | |||
f3b192247e | |||
d641225bb3 | |||
c9e11a6472 | |||
04402a8afe | |||
fe98b5c36c | |||
2301b82db0 | |||
f768dcc831 | |||
c991a7ce29 | |||
6c34f9ccbd | |||
7d0b2023cc | |||
a9333a0352 | |||
f3b120f82d | |||
b380bc7f24 | |||
c463e82651 | |||
1c1fbc6826 | |||
36be851863 | |||
1cb61cf7ec | |||
adc4ac4616 | |||
c96b1c14b8 | |||
d5fa207964 | |||
26ca9f1ad0 | |||
d50caefedd | |||
3a2fd6a598 | |||
a7f37fcf85 | |||
d5d85ac911 | |||
f6900bf5a5 | |||
546dc7c319 | |||
74d636577e | |||
d448df5801 | |||
a663bbb7fa | |||
53a86c7ea2 | |||
d7e0a36f88 | |||
83d06598c4 | |||
45a951f94e | |||
51c9ecf700 | |||
376f7a06dc | |||
cb19c5f003 | |||
e8a67cf353 | |||
eeb873b5a8 | |||
ff2e78a8bd | |||
6c67d0b0e2 | |||
a0cbf4f91f | |||
f80ef02c6e | |||
036f1356de | |||
09168405e1 | |||
924c6017b9 | |||
f64ab2abd1 | |||
36590b4d65 | |||
5d89185447 | |||
769ffb051b | |||
0c05977241 | |||
93c791552d | |||
2b40b1eb63 | |||
f4bbb08354 | |||
e1bc103b7b | |||
9d96e65385 | |||
9d41321985 | |||
6ee5c060ec | |||
9fe2f36cf1 | |||
553f592a2f | |||
c1d656cc46 | |||
b817d5b177 | |||
de5943d244 | |||
7ea682bc64 | |||
|
353ffae4f6 | ||
|
1784bd6089 | ||
|
9a04db8c7a | ||
|
726a4522fa | ||
|
6b4e787021 | ||
|
5ade361ec9 | ||
|
3a5a8c1c11 | ||
|
6d72a2dae7 | ||
|
3ca64f4fb0 | ||
|
187727f842 | ||
|
f8c7456f4f | ||
|
ad05453649 | ||
|
c17e75cc71 | ||
|
e9d87318a6 | ||
|
26bfd6da1b | ||
|
88292985fe | ||
|
ea5d4f2976 | ||
|
8c0d0071bd | ||
|
2bccec4433 | ||
|
f4360635a8 | ||
|
3dc4af5e5f | ||
|
ddc03b61e8 | ||
|
231c1d240f | ||
|
aeaafcd2f9 | ||
|
d96bee94ee | ||
|
9e303e8339 | ||
|
9df1362eb5 | ||
|
c1e7d6afe7 | ||
|
95b98fa0aa | ||
|
5ab2ef7191 | ||
|
2893ac5ecb | ||
|
c70267ae8e | ||
|
01b8ef598b | ||
|
52142aabac | ||
|
02b5134995 |
52
Dockerfile
52
Dockerfile
@@ -1,29 +1,45 @@
|
||||
FROM ubuntu
|
||||
FROM ich777/debian-baseimage
|
||||
|
||||
MAINTAINER Mattie
|
||||
LABEL org.opencontainers.image.authors="admin@minenet.at"
|
||||
LABEL org.opencontainers.image.source="https://github.com/ich777/docker-steamcmd-server"
|
||||
|
||||
RUN apt-get -y update
|
||||
RUN apt-get -y install wget
|
||||
RUN apt-get -y install lib32gcc1
|
||||
RUN dpkg --add-architecture i386 && \
|
||||
apt-get update && \
|
||||
apt-get -y install --no-install-recommends lib32gcc-s1 perl-modules curl lsof libc6 libc6-i386 bzip2 jq libssl1.1 libidn11 redis-server screen libtbb2:i386 && \
|
||||
cd /tmp && \
|
||||
wget -q -nc --show-progress --progress=bar:force:noscroll http://ftp.fr.debian.org/debian/pool/main/p/protobuf/libprotobuf10_3.0.0-9_amd64.deb && \
|
||||
dpkg -i /tmp/libprotobuf10_3.0.0-9_amd64.deb && \
|
||||
rm /tmp/libprotobuf10_3.0.0-9_amd64.deb && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV DATA_DIR="/serverdata"
|
||||
ENV STEAMCMD_DIR="${DATA_DIR}/steamcmd"
|
||||
ENV SERVER_DIR="${DATA_DIR}/serverfiles"
|
||||
ENV GAME_ID="740"
|
||||
ENV GAME_NAME="csgo"
|
||||
ENV GAME_PARAMS="+game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2"
|
||||
ENV GAME_PARAMS="template"
|
||||
ENV GAME_PARAMS_EXTRA="template"
|
||||
ENV MAP_NAME="Ocean"
|
||||
ENV GAME_PORT=27015
|
||||
ENV VALIDATE=""
|
||||
ENV ENA_REDIS=""
|
||||
ENV UMASK=000
|
||||
ENV UID=99
|
||||
ENV GID=100
|
||||
ENV USERNAME=""
|
||||
ENV PASSWRD=""
|
||||
ENV USER="steam"
|
||||
ENV DATA_PERM=770
|
||||
|
||||
RUN mkdir $DATA_DIR
|
||||
RUN mkdir $STEAMCMD_DIR
|
||||
RUN mkdir $SERVER_DIR
|
||||
|
||||
EXPOSE 1200/udp
|
||||
EXPOSE 27000-27045/udp
|
||||
EXPOSE 27000-27045
|
||||
VOLUME [${STEAMCMD_DIR}]
|
||||
RUN mkdir $DATA_DIR && \
|
||||
mkdir $STEAMCMD_DIR && \
|
||||
mkdir $SERVER_DIR && \
|
||||
useradd -d $DATA_DIR -s /bin/bash $USER && \
|
||||
chown -R $USER $DATA_DIR && \
|
||||
ulimit -n 1000000
|
||||
|
||||
ADD /scripts/ /opt/scripts/
|
||||
RUN chmod -R 774 /opt/scripts/
|
||||
COPY /libcrypto.so.1.0.0 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
|
||||
COPY /libssl.so.1.0.0 /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0
|
||||
RUN chmod -R 770 /opt/scripts/
|
||||
|
||||
#Server Start
|
||||
ENTRYPOINT ["/opt/scripts/start-csgo.sh"]
|
||||
ENTRYPOINT ["/opt/scripts/start.sh"]
|
64
README.md
64
README.md
@@ -1,28 +1,46 @@
|
||||
#Steamcmd in docker
|
||||
This dockerfill will download/install steamcmd.
|
||||
It also will install the server you want(like csgo,tf2,ins ...)
|
||||
# DEPRECATED
|
||||
|
||||
##env params
|
||||
| Name | Value | Default |
|
||||
# SteamCMD in Docker optimized for Unraid
|
||||
This Docker will download and install SteamCMD. It will also install ATLAS and run it (this docker does also have a built in Redis server for quick server setup, you also can disable it in the variables below).
|
||||
|
||||
**ATTENTION:** First Startup can take very long since it downloads the gameserver files!
|
||||
|
||||
**Update Notice:** Simply restart the container if a newer version of the game is available.
|
||||
|
||||
## Env params
|
||||
| Name | Value | Example |
|
||||
| --- | --- | --- |
|
||||
| DATA_DIR | main folder | /serverdata |
|
||||
| STEAMCMD_DIR | folder for steamcmd | /serverdata/steamcmd |
|
||||
| SERVER_DIR | folder for gamefile | /serverdata/serverfiles |
|
||||
| GAME_ID | steamid for server | 740 |
|
||||
| GAME_NAME | srcds gamename | csgo |
|
||||
| GAME_PARAMS | values to start the server | +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2 |
|
||||
| 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: '1006030 -beta YOURBRANCH' (without quotes, replace YOURBRANCH with the branch or version you want to install). | 1006030 |
|
||||
| MAP_NAME | Standard Map Name | Ocean |
|
||||
| GAME_PARAMS | Enter your start up commands for the server. | ?ServerX=0?ServerY=0?AltSaveDirectoryName=00?MaxPlayers=50?ReservedPlayerSlots=10?QueryPort=57550?Port=5750 |
|
||||
| EXTRA_GAME_PARAMS | Port the server will be running on | -log -server -NoBattlEye |
|
||||
| ENA_REDIS | If you've set up a external Redis server leave this blank, to enable the built in Redis server enter 'yes' (without quotes). | yes |
|
||||
| UID | User Identifier | 99 |
|
||||
| GID | Group Identifier | 100 |
|
||||
| VALIDATE | Validates the game data | true |
|
||||
| USERNAME | Leave blank for anonymous login | blank |
|
||||
| PASSWRD | Leave blank for anonymous login | blank |
|
||||
|
||||
>**NOTE** GAME_ID values can be found [here](https://developer.valvesoftware.com/wiki/Dedicated_Servers_List)
|
||||
|
||||
> And for GAME_NAME there is no list, so a quick search should give you the result
|
||||
|
||||
##Run example
|
||||
## Run example
|
||||
```
|
||||
docker run --name csgo-server -d \
|
||||
--env 'GAME_ID=740' \
|
||||
--env 'GAME_NAME=csgo' \
|
||||
--env 'GAME_PARAMS=+game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2' \
|
||||
--volume /share/CACHEDEV1_DATA/Public/VM/Docker/CSGO/steamcmd:/serverdata/steamcmd \
|
||||
--volume /share/CACHEDEV1_DATA/Public/VM/Docker/CSGO/serverfiles:/serverdata/serverfiles \
|
||||
mattie/docker-steamcmd-server:latest
|
||||
docker run --name ATLAS -d \
|
||||
-p 57550:57550/udp -p 5750-5751:5750-5751/udp -p 32330:32330/udp -p 27000:27000/udp \
|
||||
--env 'GAME_ID=1006030' \
|
||||
--env 'MAP_NAME=Ocean' \
|
||||
--env 'EXTRA_GAME_PARAMS=-log -server -NoBattlEye' \
|
||||
--env 'GAME_PARAMS=?ServerX=0?ServerY=0?AltSaveDirectoryName=00?MaxPlayers=50?ReservedPlayerSlots=10?QueryPort=57550?Port=5750' \
|
||||
--env 'ENA_REDIS=yes' \
|
||||
--env 'UID=99' \
|
||||
--env 'GID=100' \
|
||||
--volume /path/to/steamcmd:/serverdata/steamcmd \
|
||||
--volume /path/to/atlas:/serverdata/serverfiles \
|
||||
ich777/steamcmd:atlas
|
||||
```
|
||||
|
||||
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/
|
83
grid/ServerGrid.ServerOnly.json
Normal file
83
grid/ServerGrid.ServerOnly.json
Normal file
@@ -0,0 +1,83 @@
|
||||
{
|
||||
"LocalS3URL": "",
|
||||
"LocalS3AccessKeyId": "",
|
||||
"LocalS3SecretKey": "",
|
||||
"LocalS3BucketName": "",
|
||||
"LocalS3Region": "",
|
||||
"TribeLogConfig": {
|
||||
"MaxRedisEntries": 1000,
|
||||
"BackupMode": "off",
|
||||
"MaxFileHistory": 10,
|
||||
"HttpBackupURL": "",
|
||||
"HttpAPIKey": "",
|
||||
"S3URL": "",
|
||||
"S3AccessKeyId": "",
|
||||
"S3SecretKey": "",
|
||||
"S3BucketName": "",
|
||||
"S3KeyPrefix": ""
|
||||
},
|
||||
"SharedLogConfig": {
|
||||
"FetchRateSec": 60,
|
||||
"SnapshotCleanupSec": 900,
|
||||
"SnapshotRateSec": 1800,
|
||||
"SnapshotExpirationHours": 48,
|
||||
"BackupMode": "off",
|
||||
"MaxFileHistory": 10,
|
||||
"HttpBackupURL": "",
|
||||
"HttpAPIKey": "",
|
||||
"S3URL": "",
|
||||
"S3AccessKeyId": "",
|
||||
"S3SecretKey": "",
|
||||
"S3BucketName": "",
|
||||
"S3KeyPrefix": ""
|
||||
},
|
||||
"TravelDataConfig": {
|
||||
"BackupMode": "off",
|
||||
"MaxFileHistory": 10,
|
||||
"HttpBackupURL": "",
|
||||
"HttpAPIKey": "",
|
||||
"S3URL": "",
|
||||
"S3AccessKeyId": "",
|
||||
"S3SecretKey": "",
|
||||
"S3BucketName": "",
|
||||
"S3KeyPrefix": ""
|
||||
},
|
||||
"DatabaseConnections": [
|
||||
{
|
||||
"Name": "TradeDB",
|
||||
"URL": "127.0.0.1",
|
||||
"Port": 6379,
|
||||
"Password": "foobared"
|
||||
},
|
||||
{
|
||||
"Name": "Default",
|
||||
"URL": "127.0.0.1",
|
||||
"Port": 6379,
|
||||
"Password": "foobared"
|
||||
},
|
||||
{
|
||||
"Name": "TribeDB",
|
||||
"URL": "127.0.0.1",
|
||||
"Port": 6379,
|
||||
"Password": "foobared"
|
||||
},
|
||||
{
|
||||
"Name": "TravelDataDB",
|
||||
"URL": "127.0.0.1",
|
||||
"Port": 6379,
|
||||
"Password": "foobared"
|
||||
},
|
||||
{
|
||||
"Name": "TerritoryDB",
|
||||
"URL": "127.0.0.1",
|
||||
"Port": 6379,
|
||||
"Password": "foobared"
|
||||
},
|
||||
{
|
||||
"Name": "LogDB",
|
||||
"URL": "127.0.0.1",
|
||||
"Port": 6379,
|
||||
"Password": "foobared"
|
||||
}
|
||||
]
|
||||
}
|
BIN
grid/ServerGrid.jpg
Normal file
BIN
grid/ServerGrid.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 MiB |
1185
grid/ServerGrid.json
Normal file
1185
grid/ServerGrid.json
Normal file
File diff suppressed because it is too large
Load Diff
BIN
libcrypto.so.1.0.0
Normal file
BIN
libcrypto.so.1.0.0
Normal file
Binary file not shown.
BIN
libssl.so.1.0.0
Normal file
BIN
libssl.so.1.0.0
Normal file
Binary file not shown.
@@ -1,24 +0,0 @@
|
||||
#!/bin/bash
|
||||
if [ ! -f ${STEAMCMD_DIR}/steamcmd.sh ]; then
|
||||
echo "Steamcmd not found!"
|
||||
cd $STEAMCMD_DIR
|
||||
wget -q -O ${STEAMCMD_DIR}/steamcmd_linux.tar.gz http://media.steampowered.com/client/steamcmd_linux.tar.gz
|
||||
tar --directory ${STEAMCMD_DIR} -xvzf /serverdata/steamcmd/steamcmd_linux.tar.gz
|
||||
rm ${STEAMCMD_DIR}/steamcmd_linux.tar.gz
|
||||
chmod -R 774 ${STEAMCMD_DIR}/steamcmd.sh ${STEAMCMD_DIR}/linux32/steamcmd
|
||||
fi
|
||||
|
||||
echo "---Update steamcmd---"
|
||||
${STEAMCMD_DIR}/steamcmd.sh \
|
||||
+login anonymous \
|
||||
+quit
|
||||
|
||||
echo "---Update server---"
|
||||
${STEAMCMD_DIR}/steamcmd.sh \
|
||||
+login anonymous \
|
||||
+force_install_dir $SERVER_DIR \
|
||||
+app_update $GAME_ID \
|
||||
+quit
|
||||
|
||||
echo "---Start Server---"
|
||||
${SERVER_DIR}/srcds_run -game $GAME_NAME -usercon $GAME_PARAMS
|
132
scripts/start-server.sh
Normal file
132
scripts/start-server.sh
Normal file
@@ -0,0 +1,132 @@
|
||||
#!/bin/bash
|
||||
echo "+---------------------------------"
|
||||
echo "|"
|
||||
echo "| This container is deprecated!"
|
||||
echo "|"
|
||||
echo "+---------------------------------"
|
||||
sleep infinity
|
||||
|
||||
if [ ! -f ${STEAMCMD_DIR}/steamcmd.sh ]; then
|
||||
echo "SteamCMD not found!"
|
||||
wget -q -O ${STEAMCMD_DIR}/steamcmd_linux.tar.gz http://media.steampowered.com/client/steamcmd_linux.tar.gz
|
||||
tar --directory ${STEAMCMD_DIR} -xvzf /serverdata/steamcmd/steamcmd_linux.tar.gz
|
||||
rm ${STEAMCMD_DIR}/steamcmd_linux.tar.gz
|
||||
fi
|
||||
|
||||
echo "---Update SteamCMD---"
|
||||
if [ "${USERNAME}" == "" ]; then
|
||||
${STEAMCMD_DIR}/steamcmd.sh \
|
||||
+login anonymous \
|
||||
+quit
|
||||
else
|
||||
${STEAMCMD_DIR}/steamcmd.sh \
|
||||
+login ${USERNAME} ${PASSWRD} \
|
||||
+quit
|
||||
fi
|
||||
|
||||
echo "---Update Server---"
|
||||
if [ "${USERNAME}" == "" ]; then
|
||||
if [ "${VALIDATE}" == "true" ]; then
|
||||
echo "---Validating installation---"
|
||||
${STEAMCMD_DIR}/steamcmd.sh \
|
||||
+force_install_dir ${SERVER_DIR} \
|
||||
+login anonymous \
|
||||
+app_update ${GAME_ID} validate \
|
||||
+quit
|
||||
else
|
||||
${STEAMCMD_DIR}/steamcmd.sh \
|
||||
+force_install_dir ${SERVER_DIR} \
|
||||
+login anonymous \
|
||||
+app_update ${GAME_ID} \
|
||||
+quit
|
||||
fi
|
||||
else
|
||||
if [ "${VALIDATE}" == "true" ]; then
|
||||
echo "---Validating installation---"
|
||||
${STEAMCMD_DIR}/steamcmd.sh \
|
||||
+force_install_dir ${SERVER_DIR} \
|
||||
+login ${USERNAME} ${PASSWRD} \
|
||||
+app_update ${GAME_ID} validate \
|
||||
+quit
|
||||
else
|
||||
${STEAMCMD_DIR}/steamcmd.sh \
|
||||
+force_install_dir ${SERVER_DIR} \
|
||||
+login ${USERNAME} ${PASSWRD} \
|
||||
+app_update ${GAME_ID} \
|
||||
+quit
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${ENA_REDIS}" == "yes" ]; then
|
||||
echo "---Starting Redis Server---"
|
||||
screen -S RedisServer -d -m /usr/bin/redis-server
|
||||
sleep 5
|
||||
else
|
||||
echo "------------------------------------"
|
||||
echo "-----Internal Redis Server not------"
|
||||
echo "-----enabled, make sure you've------"
|
||||
echo "----configured your ATLAS server----"
|
||||
echo "--for an external REDIS connection--"
|
||||
echo "----otherwise it will not start!----"
|
||||
echo "------------------------------------"
|
||||
sleep 5
|
||||
fi
|
||||
|
||||
echo "---Container under construction!---"
|
||||
sleep infinity
|
||||
|
||||
echo "---Prepare Server---"
|
||||
echo "---Searching for grid files...---"
|
||||
if [ ! -f ${SERVER_DIR}/ShooterGame/ServerGrid.jpg ]; then
|
||||
echo "---'ServerGrid.jpg' not found, downloading---"
|
||||
cd ${SERVER_DIR}/ShooterGame
|
||||
if wget -q -nc --show-progress --progress=bar:force:noscroll https://raw.githubusercontent.com/ich777/docker-steamcmd-server/atlas/grid/ServerGrid.jpg ; then
|
||||
echo "---Sucessfully downloaded 'ServerGrid.jpg'---"
|
||||
else
|
||||
echo "---Can't download 'ServerGrid.jpg', putting server into sleep mode---"
|
||||
sleep infinity
|
||||
fi
|
||||
else
|
||||
echo "---'ServerGrid.jpg' found!---"
|
||||
fi
|
||||
if [ ! -f ${SERVER_DIR}/ShooterGame/ServerGrid.json ]; then
|
||||
echo "---'ServerGrid.json' not found, downloading---"
|
||||
cd ${SERVER_DIR}/ShooterGame
|
||||
if wget -q -nc --show-progress --progress=bar:force:noscroll https://raw.githubusercontent.com/ich777/docker-steamcmd-server/atlas/grid/ServerGrid.json ; then
|
||||
echo "---Sucessfully downloaded 'ServerGrid.json'---"
|
||||
else
|
||||
echo "---Can't download 'ServerGrid.json', putting server into sleep mode---"
|
||||
sleep infinity
|
||||
fi
|
||||
else
|
||||
echo "---'ServerGrid.json' found!---"
|
||||
fi
|
||||
if [ ! -f ${SERVER_DIR}/ShooterGame/ServerGrid.ServerOnly.json ]; then
|
||||
echo "---'ServerGrid.ServerOnly.json' not found, downloading---"
|
||||
cd ${SERVER_DIR}/ShooterGame
|
||||
if wget -q -nc --show-progress --progress=bar:force:noscroll https://raw.githubusercontent.com/ich777/docker-steamcmd-server/atlas/grid/ServerGrid.ServerOnly.json ; then
|
||||
echo "---Sucessfully downloaded 'ServerGrid.ServerOnly.json'---"
|
||||
else
|
||||
echo "---Can't download 'ServerGrid.ServerOnly.json', putting server into sleep mode---"
|
||||
sleep infinity
|
||||
fi
|
||||
else
|
||||
if [ ! "$(grep '"Name": "TradeDB",' ${SERVER_DIR}/ShooterGame/ServerGrid.ServerOnly.json)" ]; then
|
||||
sed -i '/\"DatabaseConnections\": \[/a\ {\n \"Name\": \"TradeDB\",\n \"URL\": \"127.0.0.1\",\n \"Port"\: 6379,\n \"Password\": \"foobared\"\n },' ${SERVER_DIR}/ShooterGame/ServerGrid.ServerOnly.json
|
||||
fi
|
||||
echo "---'ServerGrid.ServerOnly.json' found!---"
|
||||
fi
|
||||
if [ "${ENA_REDIS}" == "yes" ]; then
|
||||
echo "---Configuring Redis---"
|
||||
sleep 5
|
||||
echo "CONFIG SET dir ${SERVER_DIR}" | redis-cli
|
||||
echo "CONFIG SET dbfilename redis.rdb" | redis-cli
|
||||
echo "BGSAVE" | redis-cli
|
||||
fi
|
||||
sleep 3
|
||||
chmod -R ${DATA_PERM} ${DATA_DIR}
|
||||
echo "---Server ready---"
|
||||
|
||||
echo "---Start Server---"
|
||||
cd ${SERVER_DIR}/ShooterGame/Binaries/Linux
|
||||
./ShooterGameServer ${MAP_NAME}${GAME_PARAMS} ${GAME_PARAMS_EXTRA}
|
45
scripts/start.sh
Normal file
45
scripts/start.sh
Normal file
@@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
echo "---Ensuring UID: ${UID} matches user---"
|
||||
usermod -u ${UID} ${USER}
|
||||
echo "---Ensuring GID: ${GID} matches user---"
|
||||
groupmod -g ${GID} ${USER} > /dev/null 2>&1 ||:
|
||||
usermod -g ${GID} ${USER}
|
||||
echo "---Setting umask to ${UMASK}---"
|
||||
umask ${UMASK}
|
||||
|
||||
echo "---Checking for optional scripts---"
|
||||
cp -f /opt/custom/user.sh /opt/scripts/start-user.sh > /dev/null 2>&1 ||:
|
||||
cp -f /opt/scripts/user.sh /opt/scripts/start-user.sh > /dev/null 2>&1 ||:
|
||||
|
||||
if [ -f /opt/scripts/start-user.sh ]; then
|
||||
echo "---Found optional script, executing---"
|
||||
chmod -f +x /opt/scripts/start-user.sh ||:
|
||||
/opt/scripts/start-user.sh || echo "---Optional Script has thrown an Error---"
|
||||
else
|
||||
echo "---No optional script found, continuing---"
|
||||
fi
|
||||
|
||||
echo "---Taking ownership of data...---"
|
||||
chown -R root:${GID} /opt/scripts
|
||||
chmod -R 750 /opt/scripts
|
||||
chown -R ${UID}:${GID} /var/lib/redis
|
||||
chown -R ${UID}:${GID} /usr/bin/redis-server
|
||||
chown -R ${UID}:${GID} /usr/bin/redis-cli
|
||||
chmod -R 770 /var/lib/redis
|
||||
chown -R ${UID}:${GID} ${DATA_DIR}
|
||||
|
||||
echo "---Starting...---"
|
||||
term_handler() {
|
||||
kill -SIGTERM "$killpid"
|
||||
wait "$killpid" -f 2>/dev/null
|
||||
exit 143;
|
||||
}
|
||||
|
||||
trap 'kill ${!}; term_handler' SIGTERM
|
||||
su ${USER} -c "/opt/scripts/start-server.sh" &
|
||||
killpid="$!"
|
||||
while true
|
||||
do
|
||||
wait $killpid
|
||||
exit 0;
|
||||
done
|
Reference in New Issue
Block a user