Initial setup
This commit is contained in:
commit
1639523d6b
16
README.md
Normal file
16
README.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# Teamspeak 3 Server Quadlet configuration
|
||||||
|
|
||||||
|
This repository contains a Teamspeak 3 Server Quadlet configuration.
|
||||||
|
|
||||||
|
## Components
|
||||||
|
- Teamspeak 3 Server
|
||||||
|
- Postgresql Server
|
||||||
|
|
||||||
|
## Ports
|
||||||
|
|
||||||
|
| Port | Protocol | Description | Optional |
|
||||||
|
| ----: | :------: | ---------------------------------------------------------------- | :------: |
|
||||||
|
| 9987 | UDP | Voice traffic (default Teamspeak voice port) | No |
|
||||||
|
| 30033 | TCP | File transfer port (file uploads/downloads) | No |
|
||||||
|
| 10011 | TCP | ServerQuery (raw/Telnet) — remote administration via ServerQuery | Yes |
|
||||||
|
| 10022 | TCP | ServerQuery over SSH — alternative secure ServerQuery access | Yes |
|
||||||
9
config.map.tmpl
Normal file
9
config.map.tmpl
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: ts3-config
|
||||||
|
data:
|
||||||
|
timezone: "Europe/Berlin"
|
||||||
|
database-name: "ts3"
|
||||||
|
database-user: "ts3"
|
||||||
|
query-protocols: "raw,ssh"
|
||||||
7
secrets.yml.tmpl
Normal file
7
secrets.yml.tmpl
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: ts3-secrets
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
database-password: CHANGE-ME-TO-SOMETHING-GOOD
|
||||||
21
ts3server.kube
Normal file
21
ts3server.kube
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Teamspeak 3 Server (Pod)
|
||||||
|
After=network-online.target
|
||||||
|
|
||||||
|
[Kube]
|
||||||
|
Yaml=ts3server.yml
|
||||||
|
AutoUpdate=registry
|
||||||
|
|
||||||
|
ConfigMap=config.map
|
||||||
|
|
||||||
|
PublishPort=9987:9987
|
||||||
|
PublishPort=10011:10011
|
||||||
|
PublishPort=10022:10022
|
||||||
|
PublishPort=30033:30033
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Restart=always
|
||||||
|
RestartSec=15
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
||||||
13
ts3server.xml
Normal file
13
ts3server.xml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<service>
|
||||||
|
<short>Teamspeak 3 Server</short>
|
||||||
|
<description>Firewall rules for the Teamspeak 3 Server</description>
|
||||||
|
<!-- Voice Port -->
|
||||||
|
<port protocol="udp" port="9987" />
|
||||||
|
<!-- File Transfer Port -->
|
||||||
|
<port protocol="tcp" port="30033" />
|
||||||
|
<!-- Optional Server Query (RAW) -->
|
||||||
|
<!-- <port protocol="tcp" port="10011" /> -->
|
||||||
|
<!-- Optional Server Query (SSH) -->
|
||||||
|
<!-- <port protocol="tcp" port="10022" /> -->
|
||||||
|
</service>
|
||||||
92
ts3server.yml
Normal file
92
ts3server.yml
Normal file
@ -0,0 +1,92 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
metadata:
|
||||||
|
name: ts3
|
||||||
|
spec:
|
||||||
|
restartPolicy: Always
|
||||||
|
containers:
|
||||||
|
# --- TeamSpeak 3 Server ---
|
||||||
|
- name: ts3server
|
||||||
|
image: docker.io/teamspeak:latest
|
||||||
|
ports:
|
||||||
|
- containerPort: 9987
|
||||||
|
protocol: UDP
|
||||||
|
- containerPort: 10011
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 10022
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 30033
|
||||||
|
protocol: TCP
|
||||||
|
env:
|
||||||
|
# General Configuration
|
||||||
|
- name: TZ
|
||||||
|
valueFrom:
|
||||||
|
configMapKeyRef:
|
||||||
|
name: ts3-config
|
||||||
|
key: timezone
|
||||||
|
# Teamspeak Config
|
||||||
|
- name: TS3SERVER_LICENSE
|
||||||
|
value: "accept"
|
||||||
|
- name: TS3SERVER_QUERY_PROTOCOLS
|
||||||
|
value: "ssh,raw"
|
||||||
|
# Database Configuration
|
||||||
|
- name: TS3SERVER_DB_PLUGIN
|
||||||
|
value: "ts3db_postgres"
|
||||||
|
- name: TS3SERVER_DB_SQLCREATEPATH
|
||||||
|
value: "create_postgres"
|
||||||
|
- name: TS3SERVER_DB_WAITUNTILREADY
|
||||||
|
value: 30
|
||||||
|
- name: TS3SERVER_DB_HOST
|
||||||
|
value: "localhost"
|
||||||
|
- name: TS3SERVER_DB_NAME
|
||||||
|
valueFrom:
|
||||||
|
configMapKeyRef:
|
||||||
|
name: ts3-config
|
||||||
|
key: database-name
|
||||||
|
- name: TS3SERVER_DB_USER
|
||||||
|
valueFrom:
|
||||||
|
configMapKeyRef:
|
||||||
|
name: ts3-config
|
||||||
|
key: database-user
|
||||||
|
- name: TS3SERVER_DB_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: ts3-secrets
|
||||||
|
key: database-password
|
||||||
|
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /var/ts3server
|
||||||
|
name: ts3-server-data
|
||||||
|
|
||||||
|
# --- Postgres Database ---
|
||||||
|
- name: ts3-db
|
||||||
|
image: docker.io/postgres:18
|
||||||
|
env:
|
||||||
|
# Database Configuration
|
||||||
|
- name: POSTGRES_DB
|
||||||
|
valueFrom:
|
||||||
|
configMapKeyRef:
|
||||||
|
name: ts3-config
|
||||||
|
key: database-name
|
||||||
|
- name: POSTGRES_USER
|
||||||
|
valueFrom:
|
||||||
|
configMapKeyRef:
|
||||||
|
name: ts3-config
|
||||||
|
key: database-user
|
||||||
|
- name: POSTGRES_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: addy.io-secrets
|
||||||
|
key: database-password
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /var/lib/postgresql
|
||||||
|
name: ts3-db-data
|
||||||
|
|
||||||
|
# --- Volume Definitions ---
|
||||||
|
volumes:
|
||||||
|
- name: ts3-server-data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: ts3-server-data
|
||||||
|
- name: ts3-db-data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: ts3-db-data
|
||||||
Loading…
x
Reference in New Issue
Block a user