Compare commits

..

No commits in common. "master" and "3.1.3" have entirely different histories.

4 changed files with 68 additions and 89 deletions

2
.gitattributes vendored
View File

@ -1,2 +0,0 @@
**/*.sh text eol=lf
**/*.sh text eol=lf

View File

@ -1135,7 +1135,7 @@ TeamSpeak.com
data security and thus in particular for the protection of your personal
data against dangers with the data transmission and the gaining of
knowledge by third parties. These measures are adjusted regularly by
TeamSpeak to the state-of-the-art technology.
TeamSpeak to the state-of-the-at technology.
17.2 TeamSpeak will provide you information at all times regarding the data
security in the company. Please send your enquiry to privacy@teamspeak.com
or to the data referred to in the imprint of the TeamSpeak Websites.

View File

@ -1,26 +1,29 @@
FROM alpine:3.18
FROM alpine:3.7
RUN apk add --no-cache ca-certificates libstdc++ su-exec libpq
RUN apk add --no-cache ca-certificates libstdc++ su-exec
RUN set -eux; \
addgroup -g 9987 ts3server; \
adduser -u 9987 -Hh /var/ts3server -G ts3server -s /sbin/nologin -D ts3server; \
install -d -o ts3server -g ts3server -m 775 /var/ts3server /var/run/ts3server /opt/ts3server
addgroup -g 9987 ts3server; \
adduser -u 9987 -Hh /var/ts3server -G ts3server -s /sbin/nologin -D ts3server; \
mkdir -p /var/ts3server /var/run/ts3server; \
chown ts3server:ts3server /var/ts3server /var/run/ts3server; \
chmod 777 /var/ts3server /var/run/ts3server
ENV PATH "${PATH}:/opt/ts3server"
ARG TEAMSPEAK_CHECKSUM=359aac972679cfd98d62af51ddaf80e674cab166e13c6a835e81759097f9ba2e
ARG TEAMSPEAK_URL=https://files.teamspeak-services.com/releases/server/3.13.7/teamspeak3-server_linux_alpine-3.13.7.tar.bz2
ARG TEAMSPEAK_CHECKSUM=283964521e2299e39378ce23d58b8b019dc124a114008f9be21d0d7c5cc15080
ARG TEAMSPEAK_URL=http://dl.4players.de/ts/releases/3.1.3/teamspeak3-server_linux_alpine-3.1.3.tar.bz2
RUN set -eux; \
apk add --no-cache --virtual .fetch-deps tar; \
wget "${TEAMSPEAK_URL}" -O server.tar.bz2; \
echo "${TEAMSPEAK_CHECKSUM} *server.tar.bz2" | sha256sum -c -; \
mkdir -p /opt/ts3server; \
tar -xf server.tar.bz2 --strip-components=1 -C /opt/ts3server; \
rm server.tar.bz2; \
apk del .fetch-deps; \
mv /opt/ts3server/*.so /opt/ts3server/redist/* /usr/local/lib; \
ldconfig /usr/local/lib
apk add --no-cache --virtual .fetch-deps tar; \
wget "${TEAMSPEAK_URL}" -O server.tar.bz2; \
echo "${TEAMSPEAK_CHECKSUM} *server.tar.bz2" | sha256sum -c -; \
mkdir -p /opt/ts3server; \
tar -xf server.tar.bz2 --strip-components=1 -C /opt/ts3server; \
rm server.tar.bz2; \
apk del .fetch-deps; \
mv /opt/ts3server/*.so /opt/ts3server/redist/* /usr/local/lib; \
ldconfig /usr/local/lib; \
chown -R ts3server:ts3server /opt/ts3server
# setup directory where user data is stored
VOLUME /var/ts3server/
@ -32,6 +35,5 @@ WORKDIR /var/ts3server/
EXPOSE 9987/udp 10011 30033
COPY entrypoint.sh /opt/ts3server
ENTRYPOINT [ "entrypoint.sh" ]
CMD [ "ts3server" ]

View File

@ -15,79 +15,58 @@ fi
# usage: file_env VAR [DEFAULT]
# ie: file_env 'XYZ_DB_PASSWORD' 'example'
# (will allow for "$XYZ_DB_PASSWORD_FILE" to fill in the value of
# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature)
# "$XYZ_DB_PASSWORD" from a file, especially for Docker's secrets feature)
file_env() {
local var="$1"
local fileVar="${var}_FILE"
eval local varValue="\$${var}"
eval local fileVarValue="\$${var}_FILE"
local def="${2:-}"
if [ "${varValue:-}" ] && [ "${fileVarValue:-}" ]; then
echo >&2 "error: both $var and $fileVar are set (but are exclusive)"
exit 1
fi
local val="$def"
if [ "${varValue:-}" ]; then
val="${varValue}"
elif [ "${fileVarValue:-}" ]; then
val="$(cat "${fileVarValue}")"
fi
export "$var"="$val"
if [ "${fileVar:-}" ]; then
unset "$fileVar"
fi
if [ "${fileVarValue:-}" ]; then
unset "fileVarValue"
fi
local var="$1"
local fileVar="${var}_FILE"
eval local varValue="\$${var}"
eval local fileVarValue="\$${var}_FILE"
local def="${2:-}"
if [ "${varValue:-}" ] && [ "${fileVarValue:-}" ]; then
echo >&2 "error: both $var and $fileVar are set (but are exclusive)"
exit 1
fi
local val="$def"
if [ "${varValue:-}" ]; then
val="${varValue}"
elif [ "${fileVarValue:-}" ]; then
val="$(cat "${fileVarValue}")"
fi
export "$var"="$val"
unset "$fileVar"
unset "$fileVarValue"
}
if [ "$1" = 'ts3server' ]; then
file_env 'TS3SERVER_DB_HOST'
file_env 'TS3SERVER_DB_USER'
file_env 'TS3SERVER_DB_PASSWORD'
file_env 'TS3SERVER_DB_NAME'
cat << EOF | sed 's/^[ \t]*//;s/[ \t]*$//;/^$/d' > /var/run/ts3server/ts3server.ini
licensepath=${TS3SERVER_LICENSEPATH}
query_protocols=${TS3SERVER_QUERY_PROTOCOLS:-raw}
query_timeout=${TS3SERVER_QUERY_TIMEOUT:-300}
query_ssh_rsa_host_key=${TS3SERVER_QUERY_SSH_RSA_HOST_KEY:-ssh_host_rsa_key}
query_ip_allowlist=${TS3SERVER_IP_ALLOWLIST:-query_ip_allowlist.txt}
query_ip_blocklist=${TS3SERVER_IP_BLOCKLIST:-query_ip_blocklist.txt}
dbplugin=${TS3SERVER_DB_PLUGIN:-ts3db_sqlite3}
dbpluginparameter=${TS3SERVER_DB_PLUGINPARAMETER:-/var/run/ts3server/ts3db.ini}
dbsqlpath=${TS3SERVER_DB_SQLPATH:-/opt/ts3server/sql/}
dbsqlcreatepath=${TS3SERVER_DB_SQLCREATEPATH:-create_sqlite}
dbconnections=${TS3SERVER_DB_CONNECTIONS:-10}
dbclientkeepdays=${TS3SERVER_DB_CLIENTKEEPDAYS:-30}
logpath=${TS3SERVER_LOG_PATH:-/var/ts3server/logs}
logquerycommands=${TS3SERVER_LOG_QUERY_COMMANDS:-0}
logappend=${TS3SERVER_LOG_APPEND:-0}
serverquerydocs_path=${TS3SERVER_SERVERQUERYDOCS_PATH:-/opt/ts3server/serverquerydocs/}
${TS3SERVER_QUERY_IP:+query_ip=${TS3SERVER_QUERY_IP}}
query_port=${TS3SERVER_QUERY_PORT:-10011}
${TS3SERVER_FILETRANSFER_IP:+filetransfer_ip=${TS3SERVER_FILETRANSFER_IP}}
filetransfer_port=${TS3SERVER_FILETRANSFER_PORT:-30033}
${TS3SERVER_VOICE_IP:+voice_ip=${TS3SERVER_VOICE_IP}}
default_voice_port=${TS3SERVER_DEFAULT_VOICE_PORT:-9987}
${TS3SERVER_QUERY_SSH_IP:+query_ssh_ip=${TS3SERVER_QUERY_SSH_IP}}
query_ssh_port=${TS3SERVER_QUERY_SSH_PORT:-10022}
${TS3SERVER_SERVERADMIN_PASSWORD:+serveradmin_password=${TS3SERVER_SERVERADMIN_PASSWORD}}
${TS3SERVER_MACHINE_ID:+machine_id=${TS3SERVER_MACHINE_ID}}
${TS3SERVER_QUERY_SKIPBRUTEFORCECHECK:+query_skipbruteforcecheck=${TS3SERVER_QUERY_SKIPBRUTEFORCECHECk}}
${TS3SERVER_HINTS_ENABLED:+hints_enabled=${TS3SERVER_HINTS_ENABLED}}
EOF
cat << EOF | sed 's/^[ \t]*//;s/[ \t]*$//;/^$/d' > /var/run/ts3server/ts3db.ini
[config]
host='${TS3SERVER_DB_HOST}'
port='${TS3SERVER_DB_PORT:-3306}'
username='${TS3SERVER_DB_USER}'
password='${TS3SERVER_DB_PASSWORD}'
database='${TS3SERVER_DB_NAME}'
socket=
wait_until_ready='${TS3SERVER_DB_WAITUNTILREADY:-30}'
EOF
file_env 'TS3SERVER_DB_HOST'
file_env 'TS3SERVER_DB_USER'
file_env 'TS3SERVER_DB_PASSWORD'
file_env 'TS3SERVER_DB_NAME'
cat <<- EOF >/var/run/ts3server/ts3server.ini
licensepath=${TS3SERVER_LICENSEPATH}
query_ip_whitelist=${TS3SERVER_IP_WHITELIST:-query_ip_whitelist.txt}
query_ip_blacklist=${TS3SERVER_IP_BLACKLIST:-query_ip_blacklist.txt}
dbplugin=${TS3SERVER_DB_PLUGIN:-ts3db_sqlite3}
dbpluginparameter=${TS3SERVER_DB_PLUGINPARAMETER:-/var/run/ts3server/ts3db.ini}
dbsqlpath=${TS3SERVER_DB_SQLPATH:-/opt/ts3server/sql/}
dbsqlcreatepath=${TS3SERVER_DB_SQLCREATEPATH:-create_sqlite}
dbconnections=${TS3SERVER_DB_CONNECTIONS:-10}
dbclientkeepdays=${TS3SERVER_DB_CLIENTKEEPDAYS:-30}
logpath=${TS3SERVER_LOG_PATH:-/var/ts3server/logs}
logquerycommands=${TS3SERVER_LOG_QUERY_COMMANDS:-0}
logappend=${TS3SERVER_LOG_APPEND:-0}
EOF
cat <<- EOF >/var/run/ts3server/ts3db.ini
[config]
host='${TS3SERVER_DB_HOST}'
port='${TS3SERVER_DB_PORT:-3306}'
username='${TS3SERVER_DB_USER}'
password='${TS3SERVER_DB_PASSWORD}'
database='${TS3SERVER_DB_NAME}'
socket=
wait_until_ready='${TS3SERVER_DB_WAITUNTILREADY:-30}'
EOF
fi
exec "$@"