commit 50eb0b2bb9c1f2fb0451102aeb7a43b6ae9ec65c Author: magges Date: Sat Jul 25 16:49:03 2026 +0200 Add TeamSpeak 6 configuration and channel banners diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..155d8d0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +# Lokaler Hilfsskript: enthält zwar kein Passwort, ist aber nicht Teil der Serverkonfiguration. +local-query-askpass.sh + +# Niemals Laufzeitdaten oder Zugangsdaten versionieren. +data/ +*.key +*.pem +*.env diff --git a/README.md b/README.md new file mode 100644 index 0000000..d2d4a56 --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# TeamSpeak 6 + +Öffentliche TeamSpeak-6-Konfiguration und die Channel-Banner. Das Repository +enthält keine Zugangsdaten, Serverdaten oder ServerAdmin-Keys. + +## VPS-Container + +Die Quadlet-Definition `teamspeak6.container` verwendet persistenten +Speicher unter `/opt/teamspeak6` und veröffentlicht: + +- `9987/udp`: Voice +- `30033/tcp`: Dateiübertragung + +ServerQuery und die WebQuery-Schnittstelle werden nicht nach außen +veröffentlicht. Den initialen ServerAdmin-Key nur auf dem Server aus dem +Journal abrufen, niemals in dieses Repository schreiben: + +```bash +journalctl -u teamspeak6.service -b | grep -Ei 'privilege|token|key' +``` + +Service-Verwaltung: + +```bash +systemctl status teamspeak6.service +systemctl restart teamspeak6.service +journalctl -u teamspeak6.service -f +``` + +## Banner + +Die Bilder in `assets/` sind für die TS6-Sprachkanäle gedacht. Nach einem +Push können sie über die HTTPS-Raw-URLs dieses Repositories als +Channel-Banner gesetzt werden. diff --git a/assets/elsword.png b/assets/elsword.png new file mode 100644 index 0000000..3530cfd Binary files /dev/null and b/assets/elsword.png differ diff --git a/assets/league-of-legends.png b/assets/league-of-legends.png new file mode 100644 index 0000000..fd0f8e6 Binary files /dev/null and b/assets/league-of-legends.png differ diff --git a/assets/minecraft.png b/assets/minecraft.png new file mode 100644 index 0000000..f5a46ea Binary files /dev/null and b/assets/minecraft.png differ diff --git a/assets/monster-hunter.png b/assets/monster-hunter.png new file mode 100644 index 0000000..9f314f1 Binary files /dev/null and b/assets/monster-hunter.png differ diff --git a/teamspeak6-autostart.service b/teamspeak6-autostart.service new file mode 100644 index 0000000..5c8056b --- /dev/null +++ b/teamspeak6-autostart.service @@ -0,0 +1,14 @@ +[Unit] +Description=Start TeamSpeak 6 Quadlet container at boot +Wants=network-online.target +After=network-online.target +Requires=teamspeak6.service +After=teamspeak6.service + +[Service] +Type=oneshot +ExecStart=/usr/bin/true +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/teamspeak6.container b/teamspeak6.container new file mode 100644 index 0000000..e09f815 --- /dev/null +++ b/teamspeak6.container @@ -0,0 +1,21 @@ +[Unit] +Description=TeamSpeak 6 Server (Beta) +Wants=network-online.target +After=network-online.target + +[Container] +Image=docker.io/teamspeaksystems/teamspeak6-server:latest +ContainerName=teamspeak6 +Environment=TSSERVER_LICENSE_ACCEPTED=accept +Volume=/opt/teamspeak6:/var/tsserver:Z +PublishPort=9987:9987/udp +PublishPort=30033:30033/tcp +LogDriver=journald + +[Service] +Restart=always +RestartSec=5 +TimeoutStartSec=900 + +[Install] +WantedBy=multi-user.target