MCPSERV.CLUB
MiroTalk C2C

MiroTalk C2C

Self-Hosted

Embed real‑time WebRTC video calls in any site

Active(84)
363stars
0views
Updated 4 days ago
MiroTalk C2C screenshot 1
1 / 5

Overview

Discover what makes MiroTalk C2C powerful

MiroTalk C2C is a lightweight, end‑to‑end encrypted WebRTC video conferencing platform designed for seamless embedding into any web application. Built with a modern JavaScript stack, it exposes a minimal yet powerful set of APIs that allow developers to launch real‑time cam‑to‑cam calls, screen sharing, and room management without the overhead of a full‑blown server. The core is a Node.js back‑end that orchestrates WebRTC signalling, while the front‑end is a React/TypeScript SPA that renders the call UI and handles media streams.

Backend

Frontend

Media

Database

Overview

MiroTalk C2C is a lightweight, end‑to‑end encrypted WebRTC video conferencing platform designed for seamless embedding into any web application. Built with a modern JavaScript stack, it exposes a minimal yet powerful set of APIs that allow developers to launch real‑time cam‑to‑cam calls, screen sharing, and room management without the overhead of a full‑blown server. The core is a Node.js back‑end that orchestrates WebRTC signalling, while the front‑end is a React/TypeScript SPA that renders the call UI and handles media streams.

Architecture

  • Backend: Node.js (v18+), Express‑like routing, WebSocket server for signalling. The back‑end is stateless and can be horizontally scaled behind a load balancer; session data (room metadata, participant lists) is stored in Redis or an in‑memory store for simplicity.
  • Frontend: React with Hooks, TypeScript, and a modular component library that can be dropped into any site via an iframe. The UI is built with CSS‑modules and supports theme overrides through props or CSS variables.
  • Media: WebRTC is used for peer‑to‑peer media transport, with optional STUN/TURN support via Coturn. End‑to‑end encryption is achieved by letting browsers handle media encryption; the server only relays signalling data.
  • Database: No persistent database is required for basic operation; however, a MongoDB or PostgreSQL instance can be hooked in to persist room logs, user profiles, and analytics if desired.

Core Capabilities

  • Room API: Create/join rooms via a simple REST endpoint (/api/rooms) that returns a unique room ID.
  • Signalling: Real‑time WebSocket channel (/ws) that transmits SDP offers, ICE candidates, and participant events.
  • Screen Sharing: Exposed as a toggle in the UI; developers can bind custom events to start/stop sharing.
  • Custom Events: WebSocket messages support arbitrary JSON payloads, enabling chat, reactions, or custom data layers.
  • Extensibility Hooks: onRoomCreated, onParticipantJoined, and similar callbacks can be registered in the front‑end to integrate with external analytics or notification systems.

Deployment & Infrastructure

  • Self‑Hosting: The entire stack can run on a single VPS or Kubernetes pod. Docker images are available on Docker Hub (mirotalk/c2c) and can be orchestrated with docker‑compose or Helm charts.
  • Scalability: Because signalling is stateless, multiple back‑end instances can share a Redis pub/sub channel for WebSocket messages. Media remains peer‑to‑peer, so bandwidth scales with participants rather than the server.
  • HTTPS & Security: The back‑end supports self‑signed or Let's Encrypt certificates via the backend/ssl module. STUN/TURN can be deployed with Coturn for NAT traversal in restrictive networks.
  • Monitoring: Standard Node.js metrics (CPU, memory) are exposed; integration with Prometheus or Grafana is straightforward via the express-prom-bundle middleware.

Integration & Extensibility

  • Plugin System: Developers can inject custom React components into the call UI using a simple plugin API (registerPlugin).
  • Webhooks: The server can emit HTTP POST hooks on room start/end events, allowing integration with CI/CD pipelines or chatops.
  • SDK: A lightweight JavaScript SDK (mirotalk-sdk) exposes functions like initRoom, joinRoom, and leaveRoom, simplifying embedding into third‑party applications.
  • Customization: All UI elements are controlled via CSS variables; themes can be swapped at runtime without rebuilding the bundle.

Developer Experience

The project follows a clean, modular codebase with comprehensive JSDoc comments and an open‑source AGPLv3 license. The documentation covers everything from local development to production deployment, including detailed guides for Ngrok tunneling and custom STUN/TURN setups. An active Discord community provides quick support, feature requests, and plugin showcases. The code is open to contributions, with a clear contribution guide and issue template.

Use Cases

  • Corporate Intranet: Embed a secure video call widget into an internal portal without exposing the company network to external services.
  • Education Platforms: Add live lecture rooms with screen sharing and real‑time interaction to LMS systems.
  • IoT Dashboards: Allow remote operators to initiate video calls from a monitoring dashboard, leveraging the lightweight front‑end.
  • Open‑Source Projects: Use MiroTalk C2C as a drop‑in solution for community events, hackathons, or collaborative coding sessions.

Advantages

  • Performance: Peer‑to‑peer media keeps server load minimal; the back‑end only handles signalling, reducing latency.
  • Flexibility: The modular architecture lets developers replace any component (e.g., swap React for Vue) or extend functionality with custom plugins.
  • Licensing: The AGPLv3 license ensures that improvements remain open, while commercial licenses are available for private use.
  • Ease of Deployment: Docker images and a minimal configuration file (.env) make it trivial to spin up a production instance on any cloud provider or on‑prem server.

MiroTalk C2C offers developers a ready‑to‑

Open SourceReady to get started?

Join the community and start self-hosting MiroTalk C2C today

Weekly Views

Loading...
Support Us

Featured Project

$30/month

Get maximum visibility with featured placement and special badges

Repository Health

Loading health data...

Information

Category
apis-services
License
AGPL-3.0
Stars
363
Technical Specs
Pricing
Open Source
Docker
Official
Supported OS
LinuxDocker
Author
miroslavpejic85
miroslavpejic85
Last Updated
4 days ago