MiroTalk
Free WebRTC video conferencing and meeting rooms
MiroTalk is a free, browser-based WebRTC video conferencing solution offering screen sharing, recording, and chat. It can be self-hosted with Docker for private video meetings.
Key features
- No account or installation required
- Screen sharing and recording
- Built-in chat and whiteboard
- Multiple flavors including SFU
Pros & cons
Strengths
- Quick to deploy
- Good feature set for free
Trade-offs
- Needs TURN server for some networks
- P2P mode limited to small groups
MiroTalk replaces
Last reviewed Sep 13, 2026 · 827 words
MiroTalk works on the first try on your home network and fails on the third network you demo it from, and the difference is a TURN server. WebRTC calls need a path between browsers; on most home and mobile connections a STUN lookup is enough, but behind a symmetric NAT or a corporate firewall that blocks UDP, media has to relay through TURN or the call silently shows a black tile. "Needs TURN server for some networks" is the single most important line in the summary of this project. Budget the same evening for coturn that you budget for MiroTalk itself, and the rest of the experience is very good: a browser-only Zoom substitute with screen sharing, recording, chat, and a whiteboard, no accounts, no app installs, 512 MB of RAM, AGPL-3.0.
Pick the flavour first: P2P for 2 to 4, SFU for more
MiroTalk ships as several separate projects. The original, P2P, connects every participant directly to every other, so each browser uploads one copy of its video per peer. With 3 people that is fine; with 6 it is 5 uplinks per laptop and the call degrades on any ordinary home connection. "P2P mode limited to small groups" is that arithmetic. MiroTalk SFU puts a mediasoup selective forwarding unit on the server, so each browser uploads once and the server fans out, which scales to classroom-sized rooms at the cost of server bandwidth and a UDP port range to open (40000 to 40100 by default). There are also C2C (one-to-one), BRO (broadcast), and WEB (a landing page with rooms) variants. For a family or a small team meeting, P2P; for anything you would call "a meeting with the department", SFU.
The container is easy; the environment file is where the work is
services:
mirotalk:
image: mirotalk/p2p:latest
ports:
- "3000:3000"
env_file: .env
restart: unless-stopped
That is the whole compose file. Copy .env.template to .env and set three groups of values. First, TURN: TURN_ENABLED=true, TURN_URLS, TURN_USERNAME, TURN_PASSWORD, pointing at your coturn. Second, access control: HOST_PROTECTED=true with HOST_USERS so strangers who find the URL cannot start rooms on your bandwidth; the OIDC option is there if you run an identity provider. Third, the public URL and a reverse proxy with a real certificate, because browsers refuse camera and microphone access on plain HTTP. Nginx, Caddy, or Traefik in front on 443 proxying to 3000 with WebSocket upgrade headers is the pattern, and Caddy does it in three lines.
Coturn on the same box or a cheap VPS with a public IP, listening on 3478 and a relay port range, a static auth secret, and the same credentials in .env. Test from a phone on mobile data with wifi off; if the video appears, the relay is working.
Recording, chat, and the features that are honestly free
Recording happens in the browser via MediaRecorder, producing a WebM of the participant's own view, optionally uploaded to the server if you enable it. That is less than a server-side recording of the whole room, and it is what a free tool can offer without a media pipeline. Screen sharing, a text chat with file transfer, a whiteboard, virtual backgrounds, reactions, raise-hand, and a lobby are all present and work. Rooms are just URLs; share https://meet.example.com/join/planning and people arrive with no account. For a private meeting tool that non-technical relatives can use, it is closer to the commercial products than anything else at this size.
Jitsi and Nextcloud Talk are the heavier, safer picks
Jitsi Meet is the established self-hosted conferencing stack: a bundled Docker compose with its own SFU (the videobridge), TURN included, mobile apps, phone dial-in options, and years of production use. It is also half a dozen containers, about 4 GB of RAM to be comfortable, and a config surface that takes a weekend to understand. If you already run Nextcloud, Nextcloud Talk gives you calls inside the app you have, with the high-performance backend as the scaling step. MiroTalk's pitch is that a single container and one .env file get you most of Jitsi for a small group. For a school, a company, or anything with more than about 10 people in a room routinely, Jitsi is the pick and the extra weight is justified.
What I'd do
Family and small-team calls: MiroTalk P2P behind Caddy, coturn on the same VPS, HOST_PROTECTED on, tested from mobile data before the first real call. Regular meetings above 4 people: MiroTalk SFU with the UDP range open. Anything bigger or anything a business depends on: Jitsi Meet. Among the video conferencing options on this site, this is the tool I would hand to someone who wants a working private room this evening, with the caveat that "working" includes the TURN server, always.
Compare MiroTalk
7 head-to-head comparisons.
Similar chat & communication apps
Chatwoot
Chat & CommunicationOpen-source customer engagement and live-chat platform
Replaces Intercom, Zendesk
SimpleX Chat
Chat & CommunicationPrivate messenger without any user identifiers
Replaces Signal, WhatsApp
Etherpad
Chat & CommunicationReal-time collaborative document editor
Replaces Google Docs
Centrifugo
Chat & CommunicationScalable real-time messaging server for apps and websites
Replaces Pusher, Firebase Realtime Database
Screego
Chat & CommunicationScreen sharing for developers
Typebot
Chat & CommunicationConversational app builder (alternative to Typeform and Landbot)