Compare commits

..

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

4 changed files with 72 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=e356d0013d7e894fd1ed91725f09525e39f077901f84b50ecad0f1e5ab4ad527
ARG TEAMSPEAK_URL=http://dl.4players.de/ts/releases/3.4.0/teamspeak3-server_linux_alpine-3.4.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
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,62 @@ 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_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_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}
serverquerydocs_path=${TS3SERVER_serverquerydocs_path:-/opt/ts3server/serverquerydocs/}
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 "$@"