From 2dc93a21ef689a43ea80127111dbf9c9be043bab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Math=C3=A9o=20DESSAAUVAGES?= Date: Sun, 1 Feb 2026 00:37:35 +0100 Subject: [PATCH] feat: Added Teamspeak 6 Server --- dist/teamspeak6/.env.template | 9 +++++ dist/teamspeak6/compose.yaml | 62 +++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 dist/teamspeak6/.env.template create mode 100644 dist/teamspeak6/compose.yaml diff --git a/dist/teamspeak6/.env.template b/dist/teamspeak6/.env.template new file mode 100644 index 0000000..fcc5362 --- /dev/null +++ b/dist/teamspeak6/.env.template @@ -0,0 +1,9 @@ +TSSERVER_LICENSE_ACCEPTED=accept +TSSERVER_DATABASE_PLUGIN=mariadb +TSSERVER_DATABASE_SQL_CREATE_PATH=create_mariadb +TSSERVER_DATABASE_PORT=3306 + +MYSQL_USER=teamspeak +MYSQL_PASSWORD=YourPasswordHere +MYSQL_ROOT_PASSWORD=SuperSecretPassword +MYSQL_DATABASE=teamspeak \ No newline at end of file diff --git a/dist/teamspeak6/compose.yaml b/dist/teamspeak6/compose.yaml new file mode 100644 index 0000000..dcdbdab --- /dev/null +++ b/dist/teamspeak6/compose.yaml @@ -0,0 +1,62 @@ +networks: + traefik-network: + external: true + teamspeak6: + external: false +services: + teamspeak: + image: teamspeaksystems/teamspeak6-server:latest + container_name: teamspeak-server + restart: unless-stopped + labels: + - "traefik.enable=true" + - "traefik.docker.network=traefik-network" + - "traefik.udp.routers.ts6-voice.entrypoints=ts6-voice" + - "traefik.udp.routers.ts6-voice.service=ts6-voice-service" + - "traefik.udp.services.ts6-voice-service.loadbalancer.server.port=9987" + - "traefik.tcp.routers.ts6-filetransfer.rule=HostSNI(`*`)" + - "traefik.tcp.routers.ts6-filetransfer.entrypoints=ts6-filetransfer" + - "traefik.tcp.routers.ts6-filetransfer.service=ts6-filetransfer-service" + - "traefik.tcp.services.ts6-filetransfer-service.loadbalancer.server.port=30033" + - "traefik.tcp.routers.ts6-webquery.rule=HostSNI(`*`)" + - "traefik.tcp.routers.ts6-webquery.entrypoints=ts6-webquery" + - "traefik.tcp.routers.ts6-webquery.service=ts6-webquery-service" + - "traefik.tcp.services.ts6-webquery-service.loadbalancer.server.port=10080" + networks: + - traefik-network + - teamspeak6 + environment: + - TSSERVER_LICENSE_ACCEPTED=${TSSERVER_LICENSE_ACCEPTED} + # Database settings + - TSSERVER_DATABASE_PLUGIN=${TSSERVER_DATABASE_PLUGIN} + - TSSERVER_DATABASE_SQL_CREATE_PATH=create_mariadb + - TSSERVER_DATABASE_HOST={TSSERVER_DATABASE_SQL_CREATE_PATH} + - TSSERVER_DATABASE_PORT=${TSSERVER_DATABASE_PORT} + - TSSERVER_DATABASE_NAME=${MYSQL_DATABASE} + - TSSERVER_DATABASE_USERNAME=${MYSQL_USER} + - TSSERVER_DATABASE_PASSWORD=${MYSQL_PASSWORD} + volumes: + - ./data:/var/tsserver + depends_on: + mariadb: + condition: service_healthy + + mariadb: + image: mariadb:latest + container_name: mariadb + environment: + - MYSQL_ROOT_PASSWORD={MYSQL_ROOT_PASSWORD} + - MYSQL_DATABASE=${MYSQL_DATABASE} + - MYSQL_USER=${MYSQL_USER} + - MYSQL_PASSWORD=${MYSQL_PASSWORD} + volumes: + - mariadb-data:/var/lib/mysql + restart: unless-stopped + healthcheck: + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] + start_period: 10s + interval: 10s + timeout: 5s + retries: 3 + networks: + - teamspeak6