WrzDJ Bridge is a software tool designed to connect DJ equipment with the WrzDJ song request system, enabling seamless integration between guest requests and live performance. It supports popular DJ controllers like Denon StageLinQ, Pioneer PRO DJ LINK, Serato DJ, and Traktor Broadcast.
Key Features:
Plugin architecture for compatibility with major DJ hardware
Automatic track detection via fuzzy search and Spotify enrichment
Circuit breaker with reconnection logic and track buffer replay
Installable via winget on Windows
Ideal for DJs using compatible equipment to enhance their live performances with real-time request management.
README
WrzDJ
A real-time song request system for DJs. Guests scan a QR code to submit requests. DJs manage everything from a live dashboard with automatic track detection from their equipment via plugins for Denon, Pioneer, Serato, and Traktor.
Song Management: request queue with BPM/key/genre metadata, accept/reject, song suggestions
Event Management: kiosk controls, bridge status with admin commands, cloud provider sync
Guest join page: scan a QR code, browse the queue, request a song
Features
Guest experience
QR code join, no app install or login required
Search songs via Spotify, submit requests with notes, upvote others
Live request queue and kiosk display showing what's playing now
Cloudflare Turnstile human verification (invisible managed challenge) on /join and /collect
Mandatory nickname gate with profanity filter and letter-padding bypass protection
Email verification with one-time codes (Resend API) and cross-device guest profile merge
Pre-event song collection (/collect) — guests vote on suggestions before the night, DJs bulk-review
Inline song preview in the collect detail sheet (Spotify/Tidal embed)
Verified badge next to email-verified nicknames in request lists and leaderboard
Tower v2 UI on /join and /collect with banner art, song detail panels, and vibes enrichment
DJ dashboard
Accept, reject, and manage requests in real-time (SSE push updates)
Tabbed event detail with Song Management and Event Management views
Search Spotify, Beatport, and Tidal directly from the dashboard
Inline audio previews for Spotify and Tidal tracks
Color-coded Camelot key badges and BPM proximity indicators for harmonic mixing
The bridge connects to DJ equipment and reports "Now Playing" data to the server. It requires a running WrzDJ server (steps 1-6 above).
Desktop app (recommended): Download from Releases (Windows .exe, macOS .dmg, Linux .AppImage). Also available via winget install WrzDJ.WrzDJ-Bridge on Windows.
CLI bridge:
cd bridge
npm install
cp .env.example .env
# Edit .env with your API URL, bridge API key, event code, and protocol
npm start
Deployment
Production uses a subdomain model: app.your-domain.example (frontend) and api.your-domain.example (backend).
Docker Compose (Local Full Stack)
docker compose up --build
PaaS (Render / Railway)
Render auto-detects render.yaml. Push to GitHub, connect to Render, set credentials in the Environment tab.
Railway: Create project on Railway, add PostgreSQL, deploy server/ and dashboard/ as separate services.
VPS (Docker + nginx)
cd /opt && git clone https://github.com/thewrz/WrzDJ.git && cd WrzDJ
cp deploy/.env.example deploy/.env # Fill in secure values
docker compose -f deploy/docker-compose.yml up -d --build
Interactive API docs are available at /docs when the backend is running.
Project Structure
WrzDJ/
server/ # FastAPI backend
dashboard/ # Next.js frontend
bridge/ # DJ equipment bridge (Node.js)
bridge-app/ # Electron desktop app for the bridge
kiosk/ # Raspberry Pi kiosk deployment
deploy/ # Production deployment configs
scripts/ # Git hooks and dev tooling
.github/workflows # CI, release, and dependency health pipelines