NBFM receiver audio bridge to Zello channels
- Features
- Requirements
- Setup
- Usage
- Development
- Testing
- Troubleshooting
- Security
- Configuration
- Operations
- Support
- Links
- License
Radio forwards two local NBFM receiver channels to their matching Zello channels, with optional post-filter Broadcastify Classic feeds.
Runtime needs a Linux Docker Compose host, at least one RTL-SDR dongle, and production Zello credentials. Use Node.js 26 or later and npm for local development.
Run npm ci for development. For deployment, copy .env.example to .env and set it to mode 600.
Fill in channel values. The default Compose setup runs one channel. More channel files can be listed
with RADIO_CONFIG_FILES. See the setup guide.
Start the bridge with docker compose up -d --build. Read release notes for
changes. Find operating details in the guide and repository rules in
specifications.
See contributor instructions before making changes.
Run npm test for repository validation. Run npm run lint and npm run audit for focused checks.
Run npm run format to apply formatting and npm run format:check to check it.
See troubleshooting guidance and inspect docker compose
logs. /health shows if the status server responds. /ready shows if the receiver, both Zello
sessions, and any enabled Broadcastify processes are active.
Keep .env and other channel configuration files private. They hold account passwords,
signing keys, and optional Broadcastify credentials. Git and the Docker build context exclude them.
Channel files define Zello accounts, signing keys, SDR devices, frequencies, CTCSS tones, UDP numbers, and RNNoise level. See all settings.
See container operations for start, update, logging, and stop commands.
For help, questions, or to chat with the author and community, visit:


