Skip to main content

Deployment Overview

QuickRTC can be deployed to various environments. This guide covers the most common deployment scenarios.

Deployment Options

PlatformDifficultyCostBest For
Docker (Local)EasyFreeDevelopment, testing
Google CloudMedium~$30/moProduction
AWSMedium~$30/moProduction
Manual ServerMediumVariesAny VPS/bare metal

Requirements

All deployments require:

  • HTTPS - WebRTC requires secure contexts
  • UDP ports - For WebRTC media (default: 40000-40100)
  • Public IP - For ICE candidate announcements
  • 2+ CPU cores - mediasoup is CPU-intensive
  • 4GB+ RAM - Recommended for production

Quick Start

The fastest way to deploy is using Docker:

# Clone the example
git clone https://github.com/vidya-hub/QuickRtc.git
cd QuickRtc/quickrtc-example

# Start with SSL
./run.sh ssl-prod

Architecture Overview

Internet

├── HTTPS (443) ──► nginx ──► client (React app)
│ └──► server (Socket.IO/signaling)

└── UDP (40000-40100) ──► server (WebRTC media)

Components

  1. nginx - Reverse proxy handling SSL termination
  2. Client - React application served as static files
  3. Server - Node.js server with mediasoup workers

Port Requirements

PortProtocolDescription
80TCPHTTP (redirects to HTTPS)
443TCPHTTPS
3000TCPBackend API/WebSocket (internal)
40000-40100UDPWebRTC media

Environment Variables

All deployments use these environment variables:

VariableDescriptionDefault
ANNOUNCED_IPPublic IP for WebRTC ICE candidates(auto-detected)
RTC_MIN_PORTMinimum UDP port for WebRTC40000
RTC_MAX_PORTMaximum UDP port for WebRTC40100
PORTServer HTTP port3000

Next Steps

Choose your deployment platform: