Compare commits

..

No commits in common. "master" and "3.1.0-Beta-2" have entirely different histories.

6 changed files with 112 additions and 133 deletions

2
.gitattributes vendored
View File

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

39
3.1.0/Dockerfile Normal file
View File

@ -0,0 +1,39 @@
FROM alpine:3.7
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; \
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=23e0aec4991c6e8b051a192b0d40dfc2e2fac3e66b616ca33880712e99421f37
ARG TEAMSPEAK_URL=http://dl.4players.de/ts/releases/pre_releases/server/3.1.0-Beta-2/teamspeak3-server_linux_alpine-3.1.0.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; \
chown -R ts3server:ts3server /opt/ts3server
# setup directory where user data is stored
VOLUME /var/ts3server/
WORKDIR /var/ts3server/
# 9987 default voice
# 10011 server query
# 30033 file transport
EXPOSE 9987/udp 10011 30033
COPY entrypoint.sh /opt/ts3server
ENTRYPOINT [ "entrypoint.sh" ]
CMD [ "ts3server" ]

72
3.1.0/entrypoint.sh Executable file
View File

@ -0,0 +1,72 @@
#! /bin/sh
set -e
# don't start ts3server with root permissions
if [ "$1" = 'ts3server' -a "$(id -u)" = '0' ]; then
chown -R ts3server /var/ts3server
exec su-exec ts3server "$0" "$@"
fi
# have the default inifile as the last parameter
if [ "$1" = 'ts3server' ]; then
set -- "$@" inifile=/var/run/ts3server/ts3server.ini
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)
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"
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 >/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 "$@"

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,37 +0,0 @@
FROM alpine:3.18
RUN apk add --no-cache ca-certificates libstdc++ su-exec libpq
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
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
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
# setup directory where user data is stored
VOLUME /var/ts3server/
WORKDIR /var/ts3server/
# 9987 default voice
# 10011 server query
# 30033 file transport
EXPOSE 9987/udp 10011 30033
COPY entrypoint.sh /opt/ts3server
ENTRYPOINT [ "entrypoint.sh" ]
CMD [ "ts3server" ]

View File

@ -1,93 +0,0 @@
#! /bin/sh
set -e
# don't start ts3server with root permissions
if [ "$1" = 'ts3server' -a "$(id -u)" = '0' ]; then
chown -R ts3server /var/ts3server
exec su-exec ts3server "$0" "$@"
fi
# have the default inifile as the last parameter
if [ "$1" = 'ts3server' ]; then
set -- "$@" inifile=/var/run/ts3server/ts3server.ini
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)
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
}
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
fi
exec "$@"