diff options
| author | Pinapelz <yukais@pinapelz.com> | 2026-10-29 19:58:05 -0700 |
|---|---|---|
| committer | Pinapelz <yukais@pinapelz.com> | 2026-10-29 19:58:05 -0700 |
| commit | 96bfe2e1505b4ae250f2d5201f9541ceb01cec84 (patch) | |
| tree | b2164a76dc3aa5b69e160d1135d3385bcbe6108d /config.toml | |
| parent | 150858067059ba615c548f826bb343589993b4bb (diff) | |
ts web slopify code
Diffstat (limited to 'config.toml')
| -rw-r--r-- | config.toml | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..e314aed --- /dev/null +++ b/config.toml @@ -0,0 +1,93 @@ +# --------------------------------------------------------------------------- +# Shared configuration for the dashboard (Flask, config.py) and the browser +# voice gateway (Node, gateway/src/config.js). Both read this one file. +# +# Secrets do NOT belong here: put them in `.env` (see .env.template). +# Any environment variable listed next to a setting overrides the value here. +# --------------------------------------------------------------------------- + +# Where the app listens. When voice is enabled, the voice gateway owns the +# public port and forwards every non-voice request to the dashboard, which +# then listens on 127.0.0.1:dashboard_port only. One port to expose/proxy. +[web] +host = "0.0.0.0" # WEB_HOST +port = 5000 # WEB_PORT - public port +dashboard_port = 5001 # DASHBOARD_PORT - internal Flask port (voice enabled only) + +# TeamSpeak server connection settings +[server] +host = "" # TS_HOST - server IP or hostname, e.g. 192.168.1.50 +webquery_port = 8443 # TS_WEBQUERY_PORT - HTTP WebQuery port (TS6) +server_id = 1 # TS_SERVER_ID - virtual server id +voice_port = 9987 # TS_VOICE_PORT - UDP voice port the web voice gateway connects to +ts_domain = "" # TS_DOMAIN - address used by the "Connect" button; empty = host +cache_time = 30 # Refresh interval in seconds (anti-spam) +cache_file = "cache.json" # Relative to the repository root +afk_status_max_clients = 3 # Skip per-client clientinfo (AFK/streaming) calls when client count exceeds this (due to potential rate limits) +# TS_API_KEY (.env) - WebQuery API key +# TS_SERVER_PASSWORD (.env) - server password; required for web voice + +# Browser voice (join the server from the dashboard). +# Voice is only offered when `enabled = true` AND TS_SERVER_PASSWORD is set: +# visitors must type the server password, which the gateway checks before +# it opens any TeamSpeak connection (the TeamSpeak server checks it again). +[voice] +enabled = true # VOICE_ENABLED +max_sessions = 8 # Concurrent browser voice sessions (keep low on small SBCs) +max_sessions_per_ip = 2 # Concurrent sessions from one IP address +max_failed_logins = 5 # Wrong passwords per IP before a temporary lockout +lockout_minutes = 10 # Lockout duration after too many wrong passwords +nickname_prefix = "" # Prepended to web users' nicknames, e.g. "[web] " +default_channel = "" # Channel name (or path "Parent/Child") to join; empty = server default +identity_security_level = 8 # TeamSpeak identity security level for new web users +trust_proxy = false # Use X-Forwarded-For for per-IP limits (only behind your own reverse proxy) +allowed_origins = [] # Extra allowed Origins for /ws/voice, e.g. ["https://ts.example.com"]; same-host is always allowed + +# Main design and copy +[ui] +title = "" +subtitle = "" +background_color = "#07111f" # Main background color +panel_color = "#101b2d" # Main panel and channel block color +accent_color = "#2589ff" # Buttons, highlights, and refresh timer +text_color = "#e8f2ff" +banner_url = "banner.jpg" # Leave empty ("") to hide the header banner +enable_stars = true # Set to true to enable a subtle animated space background + +# Interface buttons and links +[buttons] +join = "Connect in TeamSpeak" +web_join = "Join from browser" +download_text = "Teamspeak is not installed yet?" +download_link = "Download Teamspeak" +download_url = "https://www.teamspeak.com/en/downloads/" # Official download link + +# Useful links. Add or remove as many rows as you want: "Name" = "https://..." +[external_links] + +# Footer +[footer] +text = "another moekyun service" +author = "" +author_url = "" + +# Channel customization. Exact channel name => image filename. +[channel_banners] +"INFORMATION" = "info.png" +"GAME SERVERS" = "game.jpeg" +"General" = "general.jpg" +"CRASHING OUT" = "crash.png" +"Wonhee HQ" = "illit.jpg" + +[channel_icons] +# "Lobby" = "lobby_icon.png" +# "General" = "general_icon.png" + +[generic_images] +background = "" # Default image applied to unknown channels +icon = "" # Default icon applied to unknown channels + +# Server groups / roles: "GROUP_ID" = "Image" +[role_icons] +# "6" = "admin.png" +# "9" = "vip.png" |
