- Go 62.5%
- HTML 21%
- CSS 14.7%
- Dockerfile 1.8%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [data.forgejo.org/renovate/renovate](https://renovatebot.com) ([source](https://github.com/renovatebot/renovate)) | container | minor | [`44.97.4` → `44.103.1`](https://octochangelog.com/compare?repo=renovatebot%2Frenovate&from=44.97.4&to=44.103.1) | --- ### Release Notes <details> <summary>renovatebot/renovate (data.forgejo.org/renovate/renovate)</summary> ### [`v44.103.1`](https://github.com/renovatebot/renovate/releases/tag/44.103.1) [Compare Source](https://github.com/renovatebot/renovate/compare/44.103.0...44.103.1) ##### Bug Fixes - **deps:** update ghcr.io/renovatebot/base-image docker tag to v13.99.4 (main) ([#​46333](https://github.com/renovatebot/renovate/issues/46333)) ([9bed6dc]( |
||
| .forgejo/workflows | ||
| cmd/server | ||
| docs | ||
| internal | ||
| .dockerignore | ||
| .gitignore | ||
| config.yaml.example | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| README.md | ||
| renovate.json | ||
ts-viewer
A small web page that shows who is sitting in which channel on your TeamSpeak server. Point it at your server, open it in a browser, done.
(demo data — not a real server)
It talks to TeamSpeak over ServerQuery and renders the channel tree server-side. No database, no JavaScript, no state — it just asks the server on every request.
Setup
1. Create a ServerQuery login
In the TeamSpeak client: Tools → ServerQuery Login. You can also use the
serveradmin account you got when you first started the server.
The login matters: without one, ts-viewer connects as a guest and people in
channels with a raised "needed subscribe power" stay invisible (that Admin
channel will look empty even when someone is in it). Any query account works as
long as it has enough i_channel_subscribe_power — serveradmin always does.
2. Write a config.yaml
http_addr: ":8080"
servers:
home:
host: "ts.example.com"
port: 10011 # the ServerQuery port, not the voice port (9987)
username: "serveradmin"
password: "your-query-password"
Every entry under servers: gets its own page. The key (home here) becomes
the URL.
3. Run it
With Docker Compose:
services:
ts-viewer:
image: forgejo.home.jbenecke.de/jan/ts-viewer:latest
ports:
- "8080:8080"
volumes:
- ./config.yaml:/app/config.yaml:ro
restart: unless-stopped
Or straight from source:
go run ./cmd/server
Then open http://localhost:8080.
Pages
| URL | What it shows |
|---|---|
/ |
All configured servers, online or not |
/ts-view/home |
The channel tree for the home server |
/healthz |
{"status":"ok"}, for your uptime checks |
All config options
http_addr: ":8080" # listen address (default :8080)
log_level: "info" # default info
servers:
home:
host: "ts.example.com" # required
port: 10011 # default 10011
sid: 1 # virtual server id, default 1
username: "serveradmin" # see the note above
password: "secret"
Set TS_CONFIG_FILE to load the config from somewhere other than ./config.yaml.
Development
go build ./cmd/server # build
go test ./... # test
go vet ./... # lint
