Compare commits

...

65 Commits

Author SHA1 Message Date
Achim Klittich
f5f1e7f614 Update alpine image to 3.18 2023-09-18 08:58:15 +02:00
Joachim Schiele
e1cd2cd1de Changing update 3.13.7 to a different rebuilt binary 2022-06-30 12:31:42 +02:00
Joachim Schiele
c52801da0f Updating to 3.13.7 2022-06-22 15:45:43 +02:00
Niels Werensteijn
ab76b77f97 Added version 3.13.6 of TeamSpeak server (alpine) 2021-06-14 14:19:45 +02:00
Niels Werensteijn
cdd39f87a2 Added version 3.13.5 of TeamSpeak server (alpine) 2021-05-19 09:43:24 +02:00
Niels Werensteijn
70c8c710d0 fix allow/block list 2021-05-19 09:42:35 +02:00
Niels Werensteijn
c85cee93fe Make docker build work for windows as well 2021-05-19 09:30:24 +02:00
Niels Werensteijn
e811d7a6a1 Added libpq to installed libraries to enable postgresql support 2021-01-04 09:20:52 +01:00
Niels Werensteijn
5539fed973 Added version 3.13.3 of TeamSpeak server (alpine) 2020-12-17 10:41:22 +01:00
Niels Werensteijn
f3fdade4d0 Added version 3.13.2 of TeamSpeak server (alpine) 2020-11-19 09:45:21 +01:00
mxhowson
a52ac9bfb7
Merge pull request #64 from MrPanKrecik/patch-1
Added version 3.13.0
2020-11-10 11:51:55 +00:00
MrPanKrecik
427cacf642
Added version 3.13.0 2020-11-10 02:06:21 +01:00
nwerensteijn
889987e7de
Merge pull request #53 from daisukixci/master
Fix #50 Fix variable unset for docker secret usage
2020-04-08 08:29:59 +02:00
Niels Werensteijn
dd1e68d645 Added version 3.12.1 2020-04-03 13:50:38 +02:00
daisukixci
b684e97681
Fix unsets 2020-03-21 20:34:50 +01:00
Tobias Ehrig
4fc46f2faa
Bump to 3.12.0 (#52) 2020-03-20 17:25:50 +01:00
Conrad
aa2d0346ef Fixed typo in LICENSE (#44) 2020-01-22 09:19:57 +01:00
Maximilian Münchow
12ce1ade4f fixed su-exec: /opt/ts3server/entrypoint.sh: Permission denied without using chmod 2020-01-20 10:42:41 +01:00
Maximilian Münchow
9669420ec3 Added version 3.11.0 2020-01-15 09:55:29 +01:00
Maximilian Münchow
666bbe0180 explicitly update file mode with a+rx for entrypoint.sh, because when building directly from git, it would only set u=rx for it. 2019-12-18 10:25:09 +01:00
Maximilian Münchow
33fca5e21e added TS3SERVER_QUERY_SKIPBRUTEFORCECHECK and TS3SERVER_HINTS_ENABLED. 2019-12-11 10:58:41 +01:00
Maxim Makarov
0f7beacc93 machine_id support (#41) 2019-12-11 10:56:45 +01:00
Maximilian Münchow
7058dd2656 added 3.10.2 2019-11-22 22:52:06 +01:00
Maximilian Münchow
4b200eadeb added 3.10.1 2019-11-18 12:05:14 +01:00
Maximilian Münchow
89fefa84a7 use install instead of mkdir/chown/chmod 2019-11-18 11:59:19 +01:00
Maximilian Münchow
cfb7288d6c removed chmod as requested 2019-11-11 14:33:42 +01:00
Maximilian Münchow
a4a389ced1 added 3.10.0 2019-11-08 07:51:12 +01:00
Maximilian Münchow
819635babc updated alpine to 3.10 2019-08-29 22:28:39 +02:00
keigel2001
9f9de4f6be Change default for TS3SERVER_QUERY_IP, TS3SERVER_FILETRANSFER_IP, TS3SERVER_VOICE_IP, TS3SERVER_QUERY_SSH_IP to empty (#32)
* Change default for TS3SERVER_QUERY_IP, TS3SERVER_FILETRANSFER_IP, TS3SERVER_VOICE_IP, TS3SERVER_QUERY_SSH_IP to empty

* Change mix of tabs and spaces to 4 spaces

* Change to inline-syntax

* Fix heredoc, trim whitespaces and remove empty lines
2019-08-13 09:58:28 +02:00
Maximilian Münchow
523adc3de1
Merge pull request #33 from mrworta/patch-1
Explicitly set permission on entrypoint.sh
2019-08-12 08:41:28 +02:00
mrworta
86b42cc459
Explicitly set permission on entrypoint.sh
Resulting image would not start without if, for example, you're building using a build pipeline.
2019-08-06 00:26:19 +02:00
Maximilian Münchow
ef39847a37 added 3.9.1 2019-07-05 02:32:51 +02:00
Maximilian Münchow
db6b99c5a1 added missing = for TS3SERVER_QUERY_SSH_PORT 2019-07-05 02:32:42 +02:00
Maximilian Münchow
91cd35c860
Merge pull request #20 from UncleSnycs/master
ip and port configuration with environment vars
2019-07-04 15:35:39 +02:00
Maximilian Münchow
d88fc3e791
Merge pull request #27 from Taraj2/master
Add serveradmin_password to env
2019-07-04 15:33:06 +02:00
Krzysiek
2fcbea914c Add serveradmin_password to env 2019-07-03 10:47:00 +02:00
Maximilian Münchow
2aa15dba1f added 3.9.0 2019-06-25 07:55:50 +02:00
Maximilian Münchow
b216589f4f added 3.8.0 2019-05-28 14:17:11 +02:00
Maximilian Münchow
d0c8785270 added 3.7.1 2019-03-29 10:08:30 +01:00
Fabian Dietl
f419f8638d
added query_ssh_port and query_ssh_ip 2019-03-21 16:54:33 +01:00
Maximilian Münchow
90183e0bdc added 3.7.0 2019-03-20 09:59:03 +01:00
Fabian Dietl
79c3e92b62 fixed environment syntax 2019-03-17 16:26:37 +01:00
Fabian Dietl
f0952d8f0b
ip and port configuration with environment vars
Allow to change the following ts3server.ini properties with environment variables:
query_ip: Default: 0.0.0.0 | Environment Variable: TS3SERVER_QUERY_IP
query_port: Default: 10011 | Environment Variable: TS3SERVER_QUERY_PORT

filetransfer_ip: Default: 0.0.0.0 | Environment Variable: TS3SERVER_FILETRANSFER_IP
filetransfer_port: Default: 30033 | Environment Variable: TS3SERVER_FILETRANSFER_PORT

voice_ip: Default: 0.0.0.0 | Environment Variable: TS3SERVER_VOICE_IP
default_voice_port: Default: 9987 | Environment Variable: TS3SERVER_DEFAULT_VOICE_PORT
2019-03-17 15:32:02 +01:00
Maximilian Münchow
65f88d8354 added 3.6.1 2019-01-30 09:53:13 +01:00
Maximilian Münchow
0eda21bab6
Merge pull request #15 from GwtLabs/patch-1
Env variable to uppercase
2019-01-30 09:50:35 +01:00
Maximilian Münchow
ad73b4d497 added 3.6.0
changed source from 'http://dl.4players.de' to 'https://files.teamspeak-services.com'
2019-01-22 08:59:47 +01:00
Maximilian Münchow
74b8d3b3c0 added 3.5.1 2018-12-18 17:16:54 +01:00
GwtLabs
3de3cc1624
Env variable to uppercase 2018-12-11 18:45:33 +01:00
Maximilian Münchow
39bf86017d added 3.5.0 2018-10-29 18:51:43 +01:00
Maximilian Münchow
ca34caf6fd added 3.4.0 2018-09-11 00:38:48 +02:00
Maximilian Münchow
4d4ead5c57 added 3.3.1 2018-08-20 15:29:40 +02:00
Maximilian Münchow
ed11a8e865 added 3.3.0 2018-08-01 17:58:39 +02:00
Maximilian Münchow
bd986e3ee6 added new server parameters. 2018-06-29 03:08:53 +02:00
Maximilian Münchow
1da75dc61e added 3.2.0 2018-05-14 09:15:04 +02:00
Maximilian Münchow
3389ddef4c added 3.1.3 2018-04-30 09:30:39 +02:00
Maximilian Münchow
2d3e339310 added 3.1.2 2018-04-25 03:31:42 +02:00
Maximilian Münchow
4a0478a0ad Reorganized git repo. 2018-03-18 22:33:45 +01:00
Maximilian Münchow
b5a3738a39 Removed 3.1.0 2018-03-18 22:33:03 +01:00
Maximilian Münchow
0acf85c990 added 3.1.1 2018-02-26 16:39:10 +01:00
Maximilian Münchow
29dd9a63a4 added 3.1.0 2018-02-14 10:24:33 +01:00
Maximilian Münchow
2e0b1dc1fb added 3.1.0-Beta-3 2018-02-06 13:37:05 +01:00
Maximilian Münchow
0aa60b817e removed multistage building, made default uid/gid to be 9987, binary input mode for sha256sum and moved generated config files to /var/run/ts3server/ to better support --user. 2018-01-30 05:15:19 +01:00
Maximilian Münchow
6a4c4663f6 updated Dockerfile 2018-01-26 03:39:41 +01:00
Maximilian Münchow
a540f3a1ba removed superfluous TEAMSPEAK_VERSION 2018-01-19 14:07:22 +01:00
Maximilian Münchow
6809b60f56 added LICENSE 2018-01-19 11:56:29 +01:00
6 changed files with 1273 additions and 116 deletions

2
.gitattributes vendored Normal file
View File

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

View File

@ -1,40 +0,0 @@
FROM alpine:3.6 AS builder
ARG TEAMSPEAK_VERSION=3.1.0.0
ARG TEAMSPEAK_CHECKSUM=e32bf1af76654ce51fc0a3560385a247c36d682eeac1979649d522a88fef9d9c
ARG TEAMSPEAK_URL=http://dl.4players.de/ts/releases/pre_releases/server/3.1.0-Beta-1/teamspeak3-server_linux_alpine-3.1.0.tar.bz2
RUN apk add --update tar ca-certificates
# download and unpack ts3server
RUN wget "${TEAMSPEAK_URL}" -O server.tar.bz2
RUN echo "${TEAMSPEAK_CHECKSUM} server.tar.bz2" | sha256sum -c -
RUN mkdir -p /opt/ts3server
RUN tar -xf server.tar.bz2 --strip-components=1 -C /opt/ts3server
COPY entrypoint.sh /opt/ts3server
FROM alpine:latest
COPY --from=builder /opt/ts3server /opt/ts3server
# setup directory where user data is stored
VOLUME /var/ts3server/
WORKDIR /var/ts3server/
# install depencies, and add ts3server user/group
RUN apk add --no-cache libstdc++ ca-certificates su-exec \
&& mv /opt/ts3server/*.so /opt/ts3server/redist/* /usr/local/lib && ldconfig /usr/local/lib \
&& addgroup ts3server \
&& adduser -Hh /var/ts3server -G ts3server -s /sbin/nologin -D ts3server \
&& chown -R ts3server:ts3server /opt/ts3server /var/ts3server
# 9987 default voice
# 10011 server query
# 30033 file transport
EXPOSE 9987/udp 10011 30033
ENV PATH "${PATH}:/opt/ts3server"
ENTRYPOINT [ "/opt/ts3server/entrypoint.sh" ]
CMD [ "ts3server" ]

View File

@ -1,76 +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=/opt/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'
if [ ! -f '/opt/ts3server/ts3server.ini' ]; then
cat <<- EOF >/opt/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:-/opt/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
fi
if [ ! -f '/opt/ts3server/ts3db.ini' ]; then
cat <<- EOF >/opt/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
fi
exec "$@"

1141
LICENSE Normal file

File diff suppressed because it is too large Load Diff

37
alpine/Dockerfile Normal file
View File

@ -0,0 +1,37 @@
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" ]

93
alpine/entrypoint.sh Executable file
View File

@ -0,0 +1,93 @@
#! /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 "$@"