Files
matrix/voice-bridge/config.toml.template
T
Lotus CIandClaude Opus 5.5 46d0e98424
Lint / Shell (shellcheck) (push) Successful in 2m0s
Lint / JS (eslint) (push) Successful in 2m1s
Lint / No secrets in webhook configs (push) Successful in 18s
Lint / Landing page is rendered (matrix (push) Successful in 18s
Lint / Python (ruff) (push) Successful in 25s
Lint / Secret scan (gitleaks) (push) Successful in 14s
Lint / Shell (shellcheck) (pull_request) Successful in 9s
Lint / JS (eslint) (pull_request) Successful in 9s
Lint / No secrets in webhook configs (pull_request) Successful in 7s
Lint / Python deps (pip-audit) (push) Successful in 1m7s
Lint / Landing page is rendered (matrix (pull_request) Successful in 4s
Lint / Python (ruff) (pull_request) Successful in 6s
Lint / Secret scan (gitleaks) (pull_request) Successful in 6s
Lint / Python deps (pip-audit) (pull_request) Successful in 30s
voice-bridge: Discord voice <-> Lotus voice room (patched nether-voicebridge)
Production setup for the Discord voice bridge on LXC 151: config and
appservice-registration templates (secrets rendered on the server), an
idempotent install script (one Synapse restart on first install, creates
the bot account so it can be invited), and a hardened systemd unit.

voice-limit-guard: VOICE_LIMIT_EXEMPT_USERS lets the bridge's own bot
listen in a call without taking a slot; relayed Discord speakers still
count. Unit tests added (61 pass); verified live on the dev stack.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5
2026-10-29 12:51:56 -04:00

35 lines
1.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Lotus Guild voice bridge (nether-voicebridge, Lotus-patched build) — LXC 151.
# Rendered by voice-bridge/install.sh into /etc/lotus-voice/config.toml (0600).
# @AS_TOKEN@ and @PUPPET_TOKENS@ are filled in on the server; never commit them.
data_dir = "/var/lib/lotus-voice"
[server.lotus]
homeserver_url = "http://127.0.0.1:8008"
# MXIDs and .well-known discovery (https://matrix.lotusguild.org) use this domain.
matrix_domain = "matrix.lotusguild.org"
# Bot = @lotus-voice_bot, Discord speakers = @lotus-voice_<discord id>.
sender_localpart = "lotus-voice"
appservice_id = "lotus-voice"
appservice_token = "@AS_TOKEN@"
[puppets]
# Lotus Voice 1–3 (Discord apps 1565219639640858746 / 1565220427297722378 /
# 1565220532830470207). One per Matrix person speaking at the same time.
tokens = [@PUPPET_TOKENS@]
nickname_prefix = "[Matrix] "
[[bridge]]
name = "discord-voice-bridge"
server = "lotus"
# Matrix: "Discord Voice Bridge" voice room.
room_id = "!yS_ZIHL3sOKQJBt4NiIQyiHKt3cv6HrIDeq7OxDpSM0"
[bridge.discord]
# Lotus Guild server, voice channel "matrix-bridge".
guild_id = "1565159371355197570"
channel_id = "1565159372122882071"
[bridge.matrix]
# Shown as a call participant in encrypted calls (it receives the media keys).
bot_display_name = "Discord Voice Bridge"
bot_avatar_path = "/opt/lotus-voice/avatar.png"