From 91e47a4e298de1f1a0e1c72f37225c89f018e8ae Mon Sep 17 00:00:00 2001 From: fithwum Date: Thu, 16 Jun 2022 13:53:53 -0700 Subject: [PATCH] new setup --- alpine/CHANGELOG | 14 ++++++ alpine/Dockerfile | 21 +++++++++ alpine/files/Install_Script.sh | 85 ++++++++++++++++++++++++++++++++++ basic/Dockerfile | 22 +++++++++ basic/files/Install_Script.sh | 75 ++++++++++++++++++++++++++++++ basic/files/ts3server.ini | 30 ++++++++++++ debian/CHANGELOG | 15 ++++++ debian/Dockerfile | 22 +++++++++ debian/files/Install_Script.sh | 85 ++++++++++++++++++++++++++++++++++ 9 files changed, 369 insertions(+) create mode 100644 alpine/CHANGELOG create mode 100644 alpine/Dockerfile create mode 100644 alpine/files/Install_Script.sh create mode 100644 basic/Dockerfile create mode 100644 basic/files/Install_Script.sh create mode 100644 basic/files/ts3server.ini create mode 100644 debian/CHANGELOG create mode 100644 debian/Dockerfile create mode 100644 debian/files/Install_Script.sh diff --git a/alpine/CHANGELOG b/alpine/CHANGELOG new file mode 100644 index 0000000..c29a377 --- /dev/null +++ b/alpine/CHANGELOG @@ -0,0 +1,14 @@ +Changes: + +2019-1-2 + + Changed the update process to preserve all settings/files/logs created by user/server. + +2019-1-3 + + Added an automatic check for new teamspeak server verstion on startup. + added more information output to indicate what is happening. + +2019-1-5 + + changed the way user files are preserved during update process now it is much faster. diff --git a/alpine/Dockerfile b/alpine/Dockerfile new file mode 100644 index 0000000..f16bf8a --- /dev/null +++ b/alpine/Dockerfile @@ -0,0 +1,21 @@ +FROM alpine:latest + +# URL's for files +ARG INSTALL_SCRIPT=https://raw.githubusercontent.com/fithwum/teamspeak-server/master/alpine/files/Install_Script.sh + +# Install dependencies and folder creation +RUN apk update && apk add --no-cache ca-certificates libstdc++ su-exec bash-completion tar \ + && mkdir -p /ts3server /ts3temp /ts3temp/inifiles /ts3temp/serverfiles \ + && chmod 777 -R /ts3server /ts3temp \ + && chown 99:100 -R /ts3server /ts3temp +ADD "${INSTALL_SCRIPT}" /ts3temp +RUN chmod +x /ts3temp/Install_Script.sh + +# directory where data is stored +VOLUME /ts3server + +# 9987 default voice, 10011 server query, 30033 file transport +EXPOSE 9987/udp 10011/tcp 30033/tcp + +# Run command +CMD [ "/bin/sh", "/ts3temp/Install_Script.sh" ] diff --git a/alpine/files/Install_Script.sh b/alpine/files/Install_Script.sh new file mode 100644 index 0000000..2a7a03d --- /dev/null +++ b/alpine/files/Install_Script.sh @@ -0,0 +1,85 @@ +#!/bin/bash +# Copyright (c) 2018 fithwum +# All rights reserved + +# Variables. +echo " " +echo "Checking for new server version from Teamspeak." +wget --no-cache https://www.teamspeak.com/versions/server.json -O /ts3temp/server.json +TS_VERSION_CHECK=$(cat /ts3temp/server.json | grep version | head -1 | awk -F: '{print $4}' | sed 's/[",]//g' | sed "s/checksum//g") +TS_VERSION=${TS_VERSION_CHECK} +CHANGELOG=/ts3server/CHANGELOG_${TS_VERSION} +echo "Latest server version from Teamspeak:$TS_VERSION" + +# Main install (alpine). +# Check for files in /ts3server and download/create if needed. +if [ -e "${CHANGELOG}" ] + then + echo "INFO ! Teamspeak server is ${TS_VERSION} ... checking that needed files exist before running current server." + rm -fr /ts3temp/server.json + else + echo " " + echo "WARNING ! Teamspeak server is out of date ... will download the updated server from teamspeak." + echo " " + echo "INFO ! Cleaning outdated Teamspeak server files and downloading server update." + rm -f /ts3server/CHANGELOG* /ts3server/lib* /ts3server/ts3server + rm -fr /ts3server/doc /ts3server/redist /ts3server/serverquerydocs /ts3server/tsdns + wget --no-cache https://files.teamspeak-services.com/releases/server/${TS_VERSION}/teamspeak3-server_linux_alpine-${TS_VERSION}.tar.bz2 -O /ts3temp/ts3server_${TS_VERSION}.tar.bz2 + tar -xf /ts3temp/ts3server_${TS_VERSION}.tar.bz2 -C /ts3temp/serverfiles --strip-components=1 + sleep 1 + rm -fr /ts3temp/serverfiles/ts3server_startscript.sh + rm -fr /ts3temp/ts3server_${TS_VERSION}.tar.bz2 + cp -uR /ts3temp/serverfiles/. /ts3server/ + sleep 1 + mv /ts3server/redist/libmariadb.so.2 /ts3server/libmariadb.so.2 + mv /ts3server/CHANGELOG ${CHANGELOG} + rm -fr /ts3temp/serverfiles/* + rm -fr /ts3temp/server.json +fi + +# Check if the ini/sh files exist in /ts3server and download/create if needed. +if [ -e /ts3server/ts3server_minimal_runscript.sh ] + then + echo "INFO ! ts3server_minimal_runscript.sh found ... will not download." + else + echo " " + echo "WARNING ! ts3server_minimal_runscript.sh not found ... will download now." + wget --no-cache https://raw.githubusercontent.com/fithwum/files-for-dockers/master/scripts/ts3server_minimal_runscript.sh -O /ts3temp/inifiles/ts3server_minimal_runscript.sh + cp /ts3temp/inifiles/ts3server_minimal_runscript.sh /ts3server/ + rm -fr /ts3temp/ts3server_minimal_runscript.sh +fi +if [ -e /ts3server/ts3db_mariadb.ini ] + then + echo "INFO ! ts3db_mariadb.ini found ... will not download." + else + echo " " + echo "WARNING ! ts3db_mariadb.ini not found ... will download now." + wget --no-cache https://raw.githubusercontent.com/fithwum/files-for-dockers/master/files/ts3db_mariadb.ini -O /ts3temp/inifiles/ts3db_mariadb.ini + cp /ts3temp/inifiles/ts3db_mariadb.ini /ts3server/ + rm -fr /ts3temp/inifiles/ts3db_mariadb.ini +fi +if [ -e /ts3server/ts3server.ini ] + then + echo "INFO ! ts3server.ini found ... will not download." + else + echo " " + echo "WARNING ! ts3server.ini not found ... will download now." + wget --no-cache https://raw.githubusercontent.com/fithwum/files-for-dockers/master/files/ts3server.ini -O /ts3temp/inifiles/ts3server.ini + cp /ts3temp/inifiles/ts3server.ini /ts3server/ + rm -fr /ts3temp/inifiles/ts3server.ini +fi + +sleep 1 + +# Set permissions. +chown 99:100 -R /ts3server +chmod 776 -R /ts3server +chmod +x /ts3server/ts3server_minimal_runscript.sh +chmod +x /ts3server/ts3server + +# Run. +echo " " +echo "INFO ! Starting Teanspeak server ${TS_VERSION}" +exec /ts3server/ts3server_minimal_runscript.sh inifile=ts3server.ini + +exit diff --git a/basic/Dockerfile b/basic/Dockerfile new file mode 100644 index 0000000..c42fda0 --- /dev/null +++ b/basic/Dockerfile @@ -0,0 +1,22 @@ +FROM fithwum/debian-base:bullseye + +# URL's for files +ARG INSTALL_SCRIPT=https://raw.githubusercontent.com/fithwum/teamspeak-server/master/basic/files/Install_Script.sh + +# Install dependencies and folder creation +RUN apt-get -y update && apt-get clean \ + && rm -rf /var/lib/apt/lists/* \ + && mkdir -p /ts3server /ts3temp /ts3temp/inifiles /ts3temp/serverfiles \ + && chmod 777 -R /ts3server /ts3temp \ + && chown 99:100 -R /ts3server /ts3temp +ADD "${INSTALL_SCRIPT}" /ts3temp +RUN chmod +x /ts3temp/Install_Script.sh + +# directory where data is stored +VOLUME /ts3server + +# 9987 default voice, 10011 server query, 30033 file transport +EXPOSE 9987/udp 10011/tcp 30033/tcp + +# Run command +CMD [ "/bin/bash", "/ts3temp/Install_Script.sh" ] diff --git a/basic/files/Install_Script.sh b/basic/files/Install_Script.sh new file mode 100644 index 0000000..6723d7f --- /dev/null +++ b/basic/files/Install_Script.sh @@ -0,0 +1,75 @@ +#!/bin/bash +# Copyright (c) 2018 fithwum +# All rights reserved + +# Variables. +echo " " +echo "Checking server version from Teamspeak." +wget --no-cache https://www.teamspeak.com/versions/server.json -O /ts3temp/server.json +TS_VERSION_CHECK=$(cat /ts3temp/server.json | grep version | head -1 | awk -F: '{print $4}' | sed 's/[",]//g' | sed "s/checksum//g") +TS_VERSION=${TS_VERSION_CHECK} +CHANGELOG=/ts3server/CHANGELOG_${TS_VERSION} +echo "Latest server version from Teamspeak:$TS_VERSION" + +# Main install (alpine). +# Check for files in /ts3server and download/create if needed. +if [ -e "${CHANGELOG}" ] + then + echo "INFO ! Teamspeak server is ${TS_VERSION} ... checking that needed files exist before running current server." + rm -fr /ts3temp/server.json + else + echo " " + echo "WARNING ! Teamspeak server is out of date ... will download updated server from Teamspeak." + echo " " + echo "INFO ! Clearing old Teamspeak server files and downloading server update." + rm -f /ts3server/CHANGELOG* /ts3server/lib* /ts3server/ts3server + rm -fr /ts3server/doc /ts3server/redist /ts3server/serverquerydocs /ts3server/tsdns + wget --no-cache https://files.teamspeak-services.com/releases/server/${TS_VERSION}/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2 -O /ts3temp/ts3server_${TS_VERSION}.tar.bz2 + tar -xf /ts3temp/ts3server_${TS_VERSION}.tar.bz2 -C /ts3temp/serverfiles --strip-components=1 + sleep 1 + rm -fr /ts3temp/serverfiles/ts3server_startscript.sh + rm -fr /ts3temp/ts3server_${TS_VERSION}.tar.bz2 + cp -uR /ts3temp/serverfiles/. /ts3server/ + sleep 1 + mv /ts3server/redist/libmariadb.so.2 /ts3server/libmariadb.so.2 + mv /ts3server/CHANGELOG ${CHANGELOG} + rm -fr /ts3temp/serverfiles/* + rm -fr /ts3temp/server.json +fi + +# Check if the ini/sh files exist in /ts3server and download/create if needed. +if [ -e /ts3server/ts3server_minimal_runscript.sh ] + then + echo "INFO ! ts3server_minimal_runscript.sh found ... will not download." + else + echo " " + echo "WARNING ! ts3server_minimal_runscript.sh not found ... will download now." + wget --no-cache https://raw.githubusercontent.com/fithwum/files-for-dockers/master/scripts/ts3server_minimal_runscript.sh -O /ts3temp/inifiles/ts3server_minimal_runscript.sh + cp /ts3temp/inifiles/ts3server_minimal_runscript.sh /ts3server/ + rm -fr /ts3temp/ts3server_minimal_runscript.sh +fi +if [ -e /ts3server/ts3server.ini ] + then + echo "INFO ! ts3server.ini found ... will not download." + else + echo " " + echo "WARNING ! ts3server.ini not found ... will download now." + wget --no-cache https://raw.githubusercontent.com/fithwum/teamspeak3/master/files/ts3server.ini -O /ts3temp/inifiles/ts3server.ini + cp /ts3temp/inifiles/ts3server.ini /ts3server/ + rm -fr /ts3temp/inifiles/ts3server.ini +fi + +sleep 1 + +# Set permissions. +chown 99:100 -R /ts3server +chmod 776 -R /ts3server +chmod +x /ts3server/ts3server_minimal_runscript.sh +chmod +x /ts3server/ts3server + +# Run. +echo " " +echo "INFO ! Starting Teamspeak server ${TS_VERSION}" +exec /ts3server/ts3server_minimal_runscript.sh inifile=ts3server.ini start + +exit diff --git a/basic/files/ts3server.ini b/basic/files/ts3server.ini new file mode 100644 index 0000000..5d4e6f9 --- /dev/null +++ b/basic/files/ts3server.ini @@ -0,0 +1,30 @@ +machine_id= +default_voice_port=9987 +voice_ip= +licensepath= +filetransfer_port=30033 +filetransfer_ip= +query_port=10011 +query_ip=0.0.0.0, :: +query_ip_allowlist=query_ip_whitelist.txt +query_ip_denylist=query_ip_blacklist.txt +dbplugin=ts3db_sqlite3 +dbpluginparameter= +dbsqlpath=sql/ +dbsqlcreatepath=create_sqlite/ +dbconnections=10 +logpath=logs/ +logquerycommands=1 +dbclientkeepdays=30 +logappend=1 +query_skipbruteforcecheck=0 +query_buffer_mb=20 +http_proxy= +license_accepted=1 +serverquerydocs_path=serverquerydocs/ +query_ssh_ip=0.0.0.0, :: +query_ssh_port=10022 +query_protocols=raw +query_ssh_rsa_host_key=ssh_host_rsa_key +query_timeout=300 +crashdumps_path=crashdumps/ diff --git a/debian/CHANGELOG b/debian/CHANGELOG new file mode 100644 index 0000000..13da413 --- /dev/null +++ b/debian/CHANGELOG @@ -0,0 +1,15 @@ +Changes: + +2019-1-2 + + Changed the update process to preserve all settings/files/logs created by user/server. + Changed to a new smaller base image (still debian). + +2019-1-3 + + Added an automatic check for new teamspeak server verstion on startup. + added more information output to indicate what is happening in the docker logs. + +2019-1-5 + + changed the way user files are preserved during update process now it is much faster. diff --git a/debian/Dockerfile b/debian/Dockerfile new file mode 100644 index 0000000..fea0309 --- /dev/null +++ b/debian/Dockerfile @@ -0,0 +1,22 @@ +FROM fithwum/debian-base:bullseye + +# URL's for files +ARG INSTALL_SCRIPT=https://raw.githubusercontent.com/fithwum/teamspeak-server/master/debian/files/Install_Script.sh + +# Install dependencies and folder creation +RUN apt-get -y update && apt-get clean \ + && rm -rf /var/lib/apt/lists/* \ + && mkdir -p /ts3server /ts3temp /ts3temp/inifiles /ts3temp/serverfiles \ + && chmod 777 -R /ts3server /ts3temp \ + && chown 99:100 -R /ts3server /ts3temp +ADD "${INSTALL_SCRIPT}" /ts3temp +RUN chmod +x /ts3temp/Install_Script.sh + +# directory where data is stored +VOLUME /ts3server + +# 9987 default voice, 10011 server query, 30033 file transport +EXPOSE 9987/udp 10011/tcp 30033/tcp + +# Run command +CMD [ "/bin/bash", "./ts3temp/Install_Script.sh" ] diff --git a/debian/files/Install_Script.sh b/debian/files/Install_Script.sh new file mode 100644 index 0000000..de704f9 --- /dev/null +++ b/debian/files/Install_Script.sh @@ -0,0 +1,85 @@ +#!/bin/bash +# Copyright (c) 2018 fithwum +# All rights reserved + +# Variables. +echo " " +echo "Checking server version from Teamspeak." +wget --no-cache https://www.teamspeak.com/versions/server.json -O /ts3temp/server.json +TS_VERSION_CHECK=$(cat /ts3temp/server.json | grep version | head -1 | awk -F: '{print $4}' | sed 's/[",]//g' | sed "s/checksum//g") +TS_VERSION=${TS_VERSION_CHECK} +CHANGELOG=/ts3server/CHANGELOG_${TS_VERSION} +echo "Latest server version from Teamspeak:$TS_VERSION" + +# Main install (debian). +# Check for files in /ts3server and download/create if needed. +if [ -e "${CHANGELOG}" ] + then + echo "INFO ! Teamspeak server is ${TS_VERSION} ... checking that needed files exist before running current server." + rm -fr /ts3temp/server.json + else + echo " " + echo "WARNING ! Teamspeak server is out of date ... will download the updated server from Teamspeak." + echo " " + echo "INFO ! Clearing old Teamspeak server files and downloading server update." + rm -f /ts3server/CHANGELOG* /ts3server/lib* /ts3server/ts3server + rm -fr /ts3server/doc /ts3server/redist /ts3server/serverquerydocs /ts3server/tsdns + wget --no-cache https://files.teamspeak-services.com/releases/server/${TS_VERSION}/teamspeak3-server_linux_amd64-${TS_VERSION}.tar.bz2 -O /ts3temp/ts3server_${TS_VERSION}.tar.bz2 + tar -xf /ts3temp/ts3server_${TS_VERSION}.tar.bz2 -C /ts3temp/serverfiles --strip-components=1 + sleep 1 + rm -fr /ts3temp/serverfiles/ts3server_startscript.sh + rm -fr /ts3temp/ts3server_${TS_VERSION}.tar.bz2 + cp -uR /ts3temp/serverfiles/. /ts3server/ + sleep 1 + mv /ts3server/redist/libmariadb.so.2 /ts3server/libmariadb.so.2 + mv /ts3server/CHANGELOG ${CHANGELOG} + rm -fr /ts3temp/serverfiles/* + rm -fr /ts3temp/server.json +fi + +# Check if the ini/sh files exist in /ts3server and download/create if needed. +if [ -e /ts3server/ts3server_minimal_runscript.sh ] + then + echo "INFO ! ts3server_minimal_runscript.sh found ... will not download." + else + echo " " + echo "WARNING ! ts3server_minimal_runscript.sh not found ... will download now." + wget --no-cache https://raw.githubusercontent.com/fithwum/files-for-dockers/master/scripts/ts3server_minimal_runscript.sh -O /ts3temp/inifiles/ts3server_minimal_runscript.sh + cp /ts3temp/inifiles/ts3server_minimal_runscript.sh /ts3server/ + rm -fr /ts3temp/ts3server_minimal_runscript.sh +fi +if [ -e /ts3server/ts3db_mariadb.ini ] + then + echo "INFO ! ts3db_mariadb.ini found ... will not download." + else + echo " " + echo "WARNING ! ts3db_mariadb.ini not found ... will download now." + wget --no-cache https://raw.githubusercontent.com/fithwum/files-for-dockers/master/files/ts3db_mariadb.ini -O /ts3temp/inifiles/ts3db_mariadb.ini + cp /ts3temp/inifiles/ts3db_mariadb.ini /ts3server/ + rm -fr /ts3temp/inifiles/ts3db_mariadb.ini +fi +if [ -e /ts3server/ts3server.ini ] + then + echo "INFO ! ts3server.ini found ... will not download." + else + echo " " + echo "WARNING ! ts3server.ini not found ... will download now." + wget --no-cache https://raw.githubusercontent.com/fithwum/files-for-dockers/master/files/ts3server.ini -O /ts3temp/inifiles/ts3server.ini + cp /ts3temp/inifiles/ts3server.ini /ts3server/ + rm -fr /ts3temp/inifiles/ts3server.ini +fi + +sleep 1 + +# Set permissions. +chown 99:100 -R /ts3server +chmod 777 -R /ts3server +chmod +x /ts3server/ts3server_minimal_runscript.sh +chmod +x /ts3server/ts3server + +# Run teamspeak server. +echo " " +echo "INFO ! Starting Teamspeak server ${TS_VERSION}" +exec /ts3server/ts3server_minimal_runscript.sh inifile=ts3server.ini start + +exit