JavaScript AGPL-3.0

mirotalk

🚀 Open-source, self-hosted P2P WebRTC video conferencing for fast, private real-time communication. Create browser-based meeting rooms with no downloads or time limits, plus screen sharing, chat, whiteboard, recording, and collaboration.

M

miroslavpejic85

Dernière activité 28 sept. 2026
miroslavpejic85/mirotalk

4,8 k

étoiles

777

forks

0

issues ouvertes

collaborationconferencingdecentralizeddocker-imagehtml-css-javascriptjavascriptlivechatmeetingmirotalkp2ppeer-to-peerscreensharingvideo-callvideo-chatvideo-conferencingweb-rtcwebrtcwebrtc-callwebrtc-videowhiteboard

Ce README est souvent en anglais.

MiroTalk P2P - Open Source Self-Hosted WebRTC P2P Video Conferencing

Open Source Peer-to-Peer Video Conferencing You Can Self-Host in Minutes

Free, Secure, Fast Real-Time Communication - up to 8K, 60fps. Works in All Browsers and Platforms.


GitHub Stars GitHub Forks

License: AGPLv3 Docker Pulls Last Commit Discord Author


MiroTalk P2P is a self-hosted, open-source video conferencing platform using direct peer-to-peer WebRTC connections for fast, secure, real-time communication. Deploy on your own server in minutes. Enjoy unlimited rooms, no time limits, end-to-end privacy, and a rich feature set - all under your control.

Try Live Demo · Privacy · Documentation · Discord · Sponsor


MiroTalk P2P - Open Source Video Conferencing

Proudly sponsored by

Recall.ai - API for meeting recording

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



✨ Why MiroTalk P2P?
MiroTalk P2P Other Solutions
💰 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
🤖 AI Features ChatGPT (OpenAI) 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 · File sharing
  • 🤖 ChatGPT (OpenAI) integration · Speech recognition
  • 🔒 OIDC auth · Host protection · JWT credentials · Room passwords · Peer-to-peer encryption
  • 🔌 REST API · Slack & Mattermost · Embeddable iframe & widget · 133 languages

See all features →

⚡ Quick start

Start in 6 commands:

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

Open http://localhost:3000 - done!

🖼️ Camera backgrounds

In Settings > Video > Background, select Off, Blur, or Image. Local PNG, JPEG, and WebP images up to 10 MB are processed in your browser and are not uploaded. Effects appear in your camera preview, outgoing camera video, and camera recordings. Screen sharing remains unaffected, including when sharing your camera and screen together.

Background controls are also available in prejoin and the quick video menu. Select Image, then use the file picker (or Choose image in the quick video menu) to choose or replace an image. The selected filename stays synchronized between prejoin and Video settings.

Effects require WebGL2 and canvas stream capture; blur also requires canvas filter support. MediaPipe Tasks Vision 0.10.21 and its WASM files are lazy-loaded from jsDelivr, and the selfie segmentation model (version 1) is loaded from Google Storage. These hosts must be reachable and permitted by any custom CSP (including WASM execution). Failures fall back to the camera without effects.

Effect output is capped at 1280 x 720 and 15 FPS. Off uses the original camera track without processing. Performance varies by device; background tabs may throttle rendering.

🐳 Docker

docker

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

git clone https://github.com/miroslavpejic85/mirotalk.git
cd mirotalk
cp .env.template .env
cp app/src/config.template.js app/src/config.js
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 http://localhost:3000 - 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. Explore Hetzner
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 P2P 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 P2P 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. Get a quick overview of the license at Choose an open source license.

To obtain a MiroTalk P2P license with terms different from the AGPLv3, you can conveniently make your purchase on CodeCanyon. This allows you to tailor the licensing conditions to better suit your specific requirements.

❤️ Support the project

Do you find MiroTalk P2P indispensable for your needs? Join us in supporting this transformative project by becoming a backer or sponsor. By doing so, not only will your logo prominently feature here, but you'll also drive the growth and sustainability of MiroTalk P2P. Your support is vital in ensuring that this valuable platform continues to thrive and remain accessible for all. Make an impact - back MiroTalk P2P today and be part of this exciting journey!

EvoPlat Cloudron EffectsSDK
QuestionPro TestMuAI BrowserStack
CrystalSound Netcup LiveAvatar
ApiSmart
🙏 Past Sponsors

We are grateful to our past sponsors for their support!

Hetzner Kiquix BroadcastX
LuvLounge
📢 Advertisers
Hostinger Contabo Rambox

✨ EffectsSDK

EffectsSDK

Enhance your video conferencing with advanced virtual backgrounds and noise suppression. EffectsSDK offers powerful SDKs and plugins for fast integration.



This project is tested with BrowserStack.


🌐 Explore the full MiroTalk suite (SFU, P2P, BRO, C2C, WEB, CME, ADM) → MiroTalk Overview


Built with ❤️ by Miroslav and the open-source community

Contributors

Thanks to all the amazing people who have contributed to MiroTalk P2P 💙

Projets similaires

🏆 Self-hosted, open-source WebRTC video conferencing platform for real-time communication and collaboration. A modern alternative to Zoom, Google Meet, Jitsi Meet, and Microsoft Teams, powered by scalable SFU architecture with Mediasoup.

JavaScriptcollaborationdockerfile-sharing
Mmiroslavpejic85
3,1 k étoiles508

📹 Open-source, self-hosted WebRTC 1-to-1 video calling for private real-time communication. Build secure browser-based consultations, coaching, support, telehealth, and other video call experiences with peer-to-peer communication and screen sharing.

JavaScripte2e-encryptionembedableend-to-end-encryption
Mmiroslavpejic85
513 étoiles97

🛠 Open-source, self-hosted WebRTC SaaS platform and video meeting scheduler. Provide user accounts, dashboards, meeting scheduling, invitations, and centralized access to MiroTalk services. Build your own branded video meeting platform on infrastructure you control.

JavaScriptjavascriptmeeting-schedulermeeting-scheduling
Mmiroslavpejic85
364 étoiles62