Quick start

Setup paths for users, admins, and builders.

Choose the tab that matches what you need right now: install the client, run a production-ready server, or compile from source.

For most users: download the desktop client

If your team already has a server, this is all you need. Install the app and join instantly.

  • Open the latest GitHub release.
  • Download the desktop build for your platform (Windows, macOS, or Linux).
  • Install and launch the client.
  • Connect to your server URL or paste an invite code from an admin.

Windows

NSIS installer + portable executable

macOS

DMG for Apple Silicon and Intel

Linux

AppImage and deb packages

For admins: run a Raddir server with Docker

This is the fastest production-style setup. Start with Docker Compose, then adjust variables for your environment.

services:
  raddir:
    image: zahli/raddir-server:latest
    container_name: raddir
    restart: unless-stopped
    ports:
      - "4000:4000"
      - "40000-40100:40000-40100/udp"
    environment:
      - RADDIR_HOST=0.0.0.0
      - RADDIR_PORT=4000
      - RADDIR_DB_PATH=/data/raddir.db
      - RADDIR_MEDIA_WORKERS=<optional-worker-count>
      - RADDIR_CONFIG_PATH=/data/raddir.config.json
      - RADDIR_RTC_MIN_PORT=40000
      - RADDIR_RTC_MAX_PORT=40100
      - RADDIR_ANNOUNCED_IP=<your-public-ip-or-dns>
      - RADDIR_ADMIN_TOKEN=<strong-admin-token>
      - RADDIR_OPEN_ADMIN=false
      - RADDIR_PASSWORD=<optional-server-password>
      - RADDIR_TRUST_PROXY=false
      - RADDIR_TLS_MODE=selfsigned
      - RADDIR_TLS_DOMAIN=<your-domain-for-letsencrypt>
      - RADDIR_TLS_EMAIL=<your-email-for-letsencrypt>
      - RADDIR_TLS_CERT=/data/tls/fullchain.pem
      - RADDIR_TLS_KEY=/data/tls/privkey.pem
      - RADDIR_LOG_LEVEL=info
    volumes:
      - raddir-data:/data

volumes:
  raddir-data:
    driver: local
VariableRequiredPurpose
RADDIR_HOSTYesServer bind address. Use 0.0.0.0 in containers.
RADDIR_PORTYesHTTPS + WSS port for API and signaling.
RADDIR_DB_PATHYesSQLite database location inside container.
RADDIR_MEDIA_WORKERSOptionalNumber of mediasoup workers (defaults to CPU count).
RADDIR_CONFIG_PATHOptionalPath to JSON config file for file-based server settings.
RADDIR_RTC_MIN_PORT / RADDIR_RTC_MAX_PORTYesUDP range for WebRTC media traffic.
RADDIR_ANNOUNCED_IPFor remote usersPublic IP or DNS name clients should connect to.
RADDIR_ADMIN_TOKENRecommendedProtects admin API actions.
RADDIR_OPEN_ADMINOptionalAllow admin API without token (not recommended on public servers).
RADDIR_PASSWORDOptionalServer-wide access password for private deployments.
RADDIR_TLS_MODEYesselfsigned, letsencrypt, or custom.
RADDIR_TLS_DOMAINFor letsencryptPublic website/domain name used for ACME certificate issuance.
RADDIR_TLS_EMAILFor letsencryptContact email for Let's Encrypt account and expiry notices.
RADDIR_TLS_CERTFor custom TLSPath to PEM certificate file.
RADDIR_TLS_KEYFor custom TLSPath to PEM private key file.
RADDIR_TRUST_PROXYOptionalSet true only behind a trusted reverse proxy.
RADDIR_LOG_LEVELOptionalLogging verbosity (debug, info, warn, error).

Network notes: expose TCP 4000 plus your configured UDP media range (for example 40000-40100).

If you use RADDIR_TLS_MODE=letsencrypt, also expose TCP 80 so ACME HTTP-01 validation can complete.

From source: compile and run the project yourself

Use this if you want local development, custom changes, or your own build pipeline.

Development workflow

pnpm install
pnpm build:shared
pnpm dev:server
pnpm dev:client

Compile desktop binaries

# Build desktop binaries (run on target OS)
pnpm electron:build:win
pnpm electron:build:mac
pnpm electron:build:linux

Build outputs are written to packages/client/release/. Build on each target OS for native installers.

Next: review Technology and Features before production rollout.

Full command reference: README