Add EVS control portal, io_mode switching, and DAC-only speaker path
Some checks failed
Build and Push EVS Bridge Image / docker (push) Has been cancelled

This commit is contained in:
Kai
2026-02-15 13:16:41 +01:00
parent 179440858b
commit 04c59c3b25
13 changed files with 1257 additions and 89 deletions

View File

@@ -15,6 +15,14 @@ Deploy one container per EVS client so every device appears as its own Mumble us
- `MUMBLE_USERNAME`: username for this EVS client (example: `EVS-esp32-evs-1`)
- `MUMBLE_PASSWORD`: optional
- `UDP_LISTEN_PORT`: UDP port this client will stream to
- `MUMBLE_CERTFILE`: optional path to client certificate file for registration/auth
- `MUMBLE_KEYFILE`: optional path to private key file (if not bundled in cert)
- `MUMBLE_AUTO_CERT`: auto-generate self-signed cert/key when missing (default `true`)
- `MUMBLE_CERT_DIR`: target dir for auto-generated certs (default `/data/certs`)
- `MUMBLE_CERT_DAYS`: validity days for auto-generated cert (default `3650`)
- `MUMBLE_CERT_SUBJECT`: optional openssl subject, default `/CN=<MUMBLE_USERNAME>`
- `MUMBLE_CERT_AUTO_RENEW`: renew cert automatically at startup when close to expiry (default `false`)
- `MUMBLE_CERT_RENEW_BEFORE_DAYS`: renewal threshold in days (default `30`)
## Optional ENV
@@ -30,6 +38,13 @@ Deploy one container per EVS client so every device appears as its own Mumble us
- `MUMBLE_SAMPLE_RATE`: default `48000`
- `MUMBLE_FRAME_MS`: default `20`
- `MUMBLE_AUDIO_GAIN`: default `1.0`
- `BRIDGE_STATS_INTERVAL_SEC`: periodic runtime stats in logs, default `5` (`0` disables)
- `VAD_ENABLED`: enable speech gating before sending to Mumble (`true|false`, default `false`)
- `VAD_RMS_THRESHOLD`: RMS gate threshold on incoming PCM16 (default `700`)
- `VAD_OPEN_FRAMES`: consecutive voice frames to open gate (default `2`)
- `VAD_CLOSE_FRAMES`: consecutive silence frames to close gate (default `20`)
- `HPF_ENABLED`: enable high-pass/DC blocker to reduce low-frequency rumble (default `true`)
- `HPF_CUTOFF_HZ`: high-pass cutoff frequency (default `120.0`)
## Example docker compose service
@@ -50,5 +65,20 @@ services:
MUMBLE_PORT: "64738"
MUMBLE_USERNAME: "EVS-esp32-evs-1"
MUMBLE_PASSWORD: ""
MUMBLE_CERTFILE: "/run/secrets/mumble_client.crt"
MUMBLE_KEYFILE: "/run/secrets/mumble_client.key"
MUMBLE_AUTO_CERT: "false"
MUMBLE_CHANNEL: "Bots"
```
For automatic self-signed cert generation when files are missing:
```yaml
MUMBLE_AUTO_CERT: "true"
MUMBLE_CERT_DIR: "/data/certs"
MUMBLE_CERT_DAYS: "3650"
MUMBLE_CERT_AUTO_RENEW: "true"
MUMBLE_CERT_RENEW_BEFORE_DAYS: "30"
# optional:
# MUMBLE_CERT_SUBJECT: "/CN=EVS-esp32-evs-1"
```