Hey,
here is my config:
version: "3.7"
services:
traefik:
image: traefik
container_name: traefik
restart: always
command:
#- "--log.level=DEBUG"
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
- --entrypoints.teamspeak.address=:9987/udp
- --entrypoints.teamspeak_serverquery_raw.address=:10011
- --entrypoints.teamspeak_serverquery_ssh.address=:10022
- --entrypoints.teamspeak_filetransfer.address=:30033
- --providers.docker
- --api
- "--certificatesresolvers.mytlschallenge.acme.tlschallenge=true"
#- "--certificatesresolvers.mytlschallenge.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
- "--certificatesresolvers.mytlschallenge.acme.email=redacted"
- "--certificatesresolvers.mytlschallenge.acme.storage=/letsencrypt/acme.json"
labels:
# Dashboard
- "traefik.http.routers.traefik.rule=Host(`redacted`)"
- "traefik.http.routers.traefik.service=api@internal"
- "traefik.http.routers.traefik.tls.certresolver=mytlschallenge"
- "traefik.http.routers.traefik.entrypoints=websecure"
- "traefik.http.routers.traefik.middlewares=authtraefik"
- "traefik.http.middlewares.authtraefik.basicauth.users=admin:redacted"
# global redirect to https
- "traefik.http.routers.redirs.rule=hostregexp(`{host:.+}`)"
- "traefik.http.routers.redirs.entrypoints=web"
- "traefik.http.routers.redirs.middlewares=redirect-to-https"
# middleware redirect
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
ports:
- 80:80
- 443:443
- 9987:9987/udp
- 10011:10011
- 10022:10022
- 30033:30033
networks:
- web
- internal
volumes:
- "/home/root/traefik/acme.json:/letsencrypt/acme.json"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
teamspeak:
image: teamspeak
container_name: teamspeak
restart: always
networks:
internal:
aliases:
- teamspeak.docker.local
volumes:
- teamspeak:/var/ts3server
environment:
- TS3SERVER_LICENSE=accept
- TS3SERVER_QUERY_PROTOCOLS=ssh,raw
- TS3SERVER_DB_PLUGIN=ts3db_mariadb
- TS3SERVER_DB_SQLCREATEPATH=create_mariadb
- TS3SERVER_DB_HOST=teamspeakdb
- TS3SERVER_DB_USER=root
- "TS3SERVER_DB_PASSWORD=redacted"
- TS3SERVER_DB_NAME=teamspeak
- TS3SERVER_DB_WAITUNTILREADY=30
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik_web"
- "traefik.http.routers.teamspeak.rule=Host(`ts.redacted`)"
- "traefik.http.routers.teamspeak.entrypoints=websecure"
- "traefik.http.routers.teamspeak.tls.certresolver=mytlschallenge"
# UDP
- "traefik.udp.routers.teamspeak.entrypoints=teamspeak"
# Filetransfer
- "traefik.tcp.routers.teamspeak-filetransfer.entrypoints=teamspeak_filetransfer"
- "traefik.tcp.routers.teamspeak-filetransfer.rule=HostSNI(`*`)"
- "traefik.tcp.routers.teamspeak-filetransfer.service=teamspeak-filetransfer@docker"
# RAW Query
- "traefik.tcp.routers.teamspeak-serverquery-raw.entrypoints=teamspeak_serverquery_raw"
- "traefik.tcp.routers.teamspeak-serverquery-raw.rule=HostSNI(`*`)"
- "traefik.tcp.routers.teamspeak-serverquery-raw.service=teamspeak-serverquery-raw@docker"
# SSH Query
- "traefik.tcp.routers.teamspeak-serverquery-ssh.entrypoints=teamspeak_serverquery_ssh"
- "traefik.tcp.routers.teamspeak-serverquery-ssh.rule=HostSNI(`*`)"
- "traefik.tcp.routers.teamspeak-serverquery-ssh.service=teamspeak-serverquery-ssh@docker"
# Services
- "traefik.udp.services.teamspeak.loadbalancer.server.port=9987"
- "traefik.tcp.services.teamspeak-filetransfer.loadbalancer.server.port=30033"
- "traefik.tcp.services.teamspeak-serverquery-raw.loadBalancer.server.port=10011"
- "traefik.tcp.services.teamspeak-serverquery-ssh.loadBalancer.server.port=10022"
depends_on:
- teamspeakdb
teamspeakdb:
image: mariadb
container_name: teamspeakdb
restart: always
volumes:
- teamspeakdb:/var/lib/mysql
labels:
- "traefik.enable=false"
networks:
- internal
environment:
- "MYSQL_ROOT_PASSWORD=redacted"
- MYSQL_DATABASE=teamspeak
networks:
web:
external: true
internal:
external: false
volumes:
teamspeak:
teamspeakdb:
TeamSpeak is working with Traefik
However the Package Loss is pretty high (around 20% - 60%). Do you guys have an idea how to improve this?
I saw that I set a loadbalancer with one server. Is it possible to set a direct connetion?