Pre-built Trunk Recorder Docker image with all common plugins included. This repository publishes the crimeisdown forked image while still tracking upstream trunk-recorder for the core build.
docker pull ghcr.io/crimeisdown/trunk-recorder:latest| Plugin | Source | Purpose |
|---|---|---|
mqtt_status |
TrunkRecorder/tr-plugin-mqtt | Call/unit/recorder events over MQTT |
mqtt_dvcf |
trunk-reporter/tr-plugin-dvcf | Raw IMBE codec frames → DVCF files + MQTT (for IMBE-ASR) |
symbolstream |
trunk-reporter/symbolstream | Live codec frame streaming over TCP/UDP |
simplestream |
upstream (patched) | Audio streaming to remote consumers |
openmhz_uploader |
upstream | Upload calls to OpenMHz |
broadcastify_uploader |
upstream | Upload calls to Broadcastify |
unit_script |
upstream | Run scripts on unit events |
docker run -d \
--name trunk-recorder \
--restart unless-stopped \
--privileged \
--device /dev/bus/usb:/dev/bus/usb \
-v /var/run/dbus:/var/run/dbus \
-v ./config.json:/app/config.json:ro \
-v ./audio:/app/audio \
ghcr.io/crimeisdown/trunk-recorder:latestMount your existing config.json — everything else is the same as a standard trunk-recorder setup.
Add plugins to the plugins array in your config.json. See each plugin's README for full config options.
{
"name": "mqtt_status",
"library": "libmqtt_status_plugin",
"broker": "tcp://YOUR_BROKER:1883",
"topic": "tr/feeds",
"unit_topic": "tr/units",
"instanceId": "my-site"
}{
"name": "mqtt_dvcf",
"library": "libmqtt_dvcf",
"write_enabled": true,
"mqtt_enabled": true,
"broker": "tcp://YOUR_BROKER:1883",
"topic": "tr/feeds"
}{
"name": "symbolstream",
"library": "libsymbolstream",
"streams": [
{
"address": "YOUR_TR_ENGINE_HOST",
"port": 9090,
"TGID": 0,
"useTCP": true,
"sendJSON": true
}
]
}For the complete P25 transcription stack (tr-engine + tr-dashboard + imbe-asr + postgres + mosquitto), see trunk-reporter/tr-stack.
- Built from latest upstream trunk-recorder weekly + on every push
simplestreamincludes a pending dangling-pointer fix (TR PR #1107) that will be removed once merged upstream- Requires
voice_codec_data()API (merged in TR commitc996900) — already in this image