MCPcopy
hub / github.com/miroslavpejic85/mirotalksfu

github.com/miroslavpejic85/mirotalksfu @main sqlite

repository ↗ · DeepWiki ↗
1,920 symbols 6,610 edges 85 files 43 documented · 2%
README
<a href="https://sfu.mirotalk.com" target="_blank">
    <img src="https://github.com/miroslavpejic85/mirotalksfu/raw/main/public/images/mirotalk-icon.png">
</a>

MiroTalk SFU

Self-hosted, open-source WebRTC video conferencing platform for real-time communication and collaboration at scale.

A modern alternative to Zoom, Google Meet, Jitsi Meet, and Microsoft Teams, powered by a scalable SFU architecture (Mediasoup).

GitHub Stars GitHub Forks

License: AGPLv3 Docker Pulls Last Commit Discord Author

MiroTalk SFU is a self-hosted, open-source video conferencing platform built on mediasoup SFU architecture for scalable real-time communication. A powerful alternative to Zoom, Google Meet, and Microsoft Teams for video conferencing, collaboration, and streaming. Deploy it on your own server and keep full control over your data, privacy, and infrastructure — with no vendor lock-in and no limits.

<a href="https://sfu.mirotalk.com">Try Live Demo</a> · <a

href="https://sfu.mirotalk.com/privacy">Privacy · Documentation · Discord · Sponsor

<a href="https://sfu.mirotalk.com/">
    <img src="https://github.com/miroslavpejic85/mirotalksfu/raw/main/public/images/mirotalksfu-github.gif" alt="MiroTalk SFU - Open Source Video Conferencing">
</a>

Proudly sponsored by

Recall.ai - API for meeting recording

An API for recording Zoom, Google Meet, Microsoft Teams, and in-person meetings.


✨ Why MiroTalk SFU?

MiroTalk SFU Zoom / Meet / Teams
💰 Cost Free & Open Source (AGPLv3). One-time fee licenses available Paid plans
🏠 Self-hosted ✅ Full control over your data ❌ Cloud only
🔒 Privacy Your server, your rules Third-party data processing
⏱️ Time limits Unlimited 40-60 min on free tiers
🏢 Rooms Unlimited concurrent rooms Limited
🎥 Resolution Up to 8K @ 60fps Up to 1080p
🌍 Languages 133 languages ~30-80
🔌 API Full REST API included Paid add-on
📡 RTMP/OBS Built-in RTMP streaming Third-party needed
🤖 AI Features ChatGPT, DeepSeek + VideoAI integration Paid AI add-ons
🧩 Rebrand Full source code, white-label ready Limited branding options
📦 Deploy Docker, Node.js, one-click install N/A (SaaS only)

🚀 Features

  • 🎥 Video up to 8K @ 60fps · Screen sharing · Recording · Picture-in-Picture
  • 💬 Chat with Markdown & emoji · Collaborative whiteboard and Rich text editor · File sharing
  • 🤖 ChatGPT (OpenAI) & DeepSeek integration · VideoAI avatars · Speech recognition
  • 🔒 OIDC auth · Host protection · JWT credentials · Room passwords · Lobby & spam mitigation
  • 🔌 REST API · Slack, Discord & Mattermost · Embeddable iframe & widget · 133 languages

See all features →

⚡ Quick Start

Start in 6 commands:

git clone https://github.com/miroslavpejic85/mirotalksfu.git
cd mirotalksfu
cp app/src/config.template.js app/src/config.js
cp .env.template .env
npm install
npm start

Open https://localhost:3010 - done!


📋 Full Setup Guide (Requirements & Details)

Before running MiroTalk SFU, ensure you have Node.js and all requirements installed. This project has been tested with Node version 22.X.

Requirements install example for Ubuntu 24.04 LTS:

apt-get update
apt-get install -y build-essential
DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata
apt install -y software-properties-common
add-apt-repository -y ppa:deadsnakes/ppa
apt update
apt install -y python3.8 python3-pip
apt install -y ffmpeg

nodejs

Install NodeJS 22.X and npm using Node Version Manager


Start the server:

git clone https://github.com/miroslavpejic85/mirotalksfu.git
cd mirotalksfu
cp app/src/config.template.js app/src/config.js
cp .env.template .env
npm install
npm start                          # or: SERVER_LISTEN_PORT=3011 npm start

Open https://localhost:3010 - done!

[!NOTE]

To run MiroTalk SFU on a Windows operating system, you can follow the instructions provided in this documentation.

🐳 Docker

docker

Prerequisites: Install Docker Engine and Docker Compose - Image available on Docker Hub

git clone https://github.com/miroslavpejic85/mirotalksfu.git
cd mirotalksfu
cp app/src/config.template.js app/src/config.js
cp .env.template .env
cp docker-compose.template.yml docker-compose.yml
docker-compose pull    # optional: pull official image
docker-compose up      # add -d to run in background

Open https://localhost:3010 - done!

Note: Edit app/src/config.js, .env, and docker-compose.yml to customize your setup.

📚 Documentation

For detailed guides and references, visit the official documentation:

☁️ Recommended Hosting Providers

Provider Description Link
Cloudron One-click install from the Cloudron App Store. Automates deployment, updates, backups, and user management. Get Started
Hetzner High-performance cloud servers and dedicated root servers with top-tier reliability. Powers our live demo. Get €20 Free Credits
Netcup Enterprise-grade performance at unbeatable prices. Scalable and reliable. Explore Netcup
Hostinger Fast, reliable hosting with 24/7 support and great performance. Check out Hostinger
Contabo Top-tier German hosting, dedicated servers, VPS, and web hosting at unbeatable prices. Explore Contabo

To set up your own instance of MiroTalk SFU on a dedicated cloud server, please refer to our comprehensive self-hosting documentation.

🙏 Credits

🤝 Contributing

Contributions are welcome and greatly appreciated! Whether it's bug fixes, features, or documentation - every contribution helps.

  1. Fork the repository
  2. Create your feature branch
  3. Run npm run lint before committing
  4. Submit a pull request

Have questions? Join our Discord community!

📄 License

AGPLv3

MiroTalk SFU is free and open-source under the terms of AGPLv3 (GNU Affero General Public License v3.0). Please respect the license conditions, In particular modifications need to be free as well and made available to the public. Ge

Core symbols most depended-on inside this repo

log
called by 485
app/src/Logger.js
debug
called by 364
public/sfu/MediasoupClient.js
debug
called by 281
app/src/Logger.js
addEventListener
called by 279
public/sfu/MediasoupClient.js
getId
called by 176
public/js/RoomClient.js
on
called by 168
public/sfu/MediasoupClient.js
userLog
called by 167
public/js/RoomClient.js
show
called by 159
public/js/Room.js

Shape

Method 1,095
Function 747
Class 78

Languages

TypeScript100%

Modules by API surface

public/js/RoomClient.js523 symbols
public/sfu/MediasoupClient.js305 symbols
public/js/Room.js303 symbols
app/src/Room.js69 symbols
public/js/Widget.js62 symbols
app/src/Server.js62 symbols
app/src/FixWebmDurationBuffer.js39 symbols
app/src/Peer.js35 symbols
public/js/RnnoiseSync.js30 symbols
public/js/NoiseSuppressionProcessor.js30 symbols
public/js/Transcription.js28 symbols
public/js/NodeProcessor.js25 symbols

Dependencies from manifests, versioned

@aws-sdk/client-s33.1077.0 · 1×
@aws-sdk/lib-storage3.1077.0 · 1×
@ffmpeg-installer/ffmpeg1.1.0 · 1×
@mattermost/client11.8.0 · 1×
@ngrok/ngrok1.7.0 · 1×
@sentry/node10.63.0 · 1×
async-mutex0.5.0 · 1×
axios1.18.1 · 1×
body-parser2.2.0 · 1×
chokidar5.0.0 · 1×
colors1.4.0 · 1×
compression1.8.1 · 1×

For agents

$ claude mcp add mirotalksfu \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact