Exchange deployment¶
Deploy sip-dmr-exchange on your portal host.
Clone and configure¶
git clone https://github.com/FreeSTAR-Network/sip-dmr-exchange.git
cd sip-dmr-exchange
cp .env.example .env
Edit .env — minimum fields:
| Variable | Example | Notes |
|---|---|---|
HOST_IP |
203.0.113.10 |
Public IP peers send SIP to |
SIP_AUTH_TOKEN |
(random secret) | Required for production |
DMR_ADDRESS |
dmr.example.com |
Your MMDVM/SystemX host |
DMR_PORT |
62031 |
MMDVM port |
DMR_PASSWORD |
(from server admin) | |
MAX_ACTIVE_CALLS |
2 |
Cap concurrent bridges |
See Configuration for all variables.
Build and run¶
Uses host networking — exchange binds directly to host UDP 5060.
Routine deploys
Full rebuild compiles PJSIP and can take a long time on small VMs. For code-only changes, use thin rebuild patterns documented in your team's ops notes (wheel-only layer updates).
Verify¶
Optional: HTTPS dashboard¶
Clone sip-dmr-exchange-dashboard and serve via nginx:
/dashboard/— static UI/bridges,/stats— reverse proxy to127.0.0.1:8080
Orphan bridge containers¶
If the exchange container is recreated while calls were active, old sip-dmr-bridge containers may linger. Compare docker ps with /bridges and remove orphans manually until startup reconciliation is implemented in exchange.
Related¶
Last update: August 17, 2026 21:08:54
Last updated by: MØVUB
Last updated by: MØVUB
Help improve this page by contributing to our documentation.