🏆 WebRTC - SFU - Simple, Secure, Scalable Real-Time Video Conferences Up to 4k, compatible with all browsers and platforms.
MiroTalk SFU
Free WebRTC - SFU - Simple, Secure, Scalable Real-Time Video Conferences with support for up to 4k resolution. It's compatible with all major browsers and platforms
Join our community for questions, discussions, and support on Discord
Features
100% Free
- Open Source (AGPLv3)
- Self Hosted
and PWA!About
Direct Join
You can directly join a room
by using link like:
Note
The
username
andpassword
parameters are required when eitherhost.protected
orhost.user_auth
is set totrue
in theapp/src/config.js
file. The valid list of users is defined in thehost.users
configuration.
Host Protection Configuration
When host.protected or host.user_auth
is enabled, the host/users must provide a valid username and password as specified in the app/src/config.js
file.
Params Value Description
host.protected
true
if protection is enabled, false
if not (default false)
Requires the host to provide a valid username and password during room initialization.
host.user_auth
true
if user authentication is required, false
if not (default false).
Determines whether host authentication is required.
host.users
JSON array with user objects: {"username": "username", "password": "password"}
List of valid host users with their credentials.
Example:
host: { protected: true, user_auth: true, users: [ { username: 'username', password: 'password', }, { username: 'username2', password: 'password2', }, //... ], },Room Initialization
To bypass the login page, join the room with URL parameters:
Participant Room Entry
If host.protected
is enabled, participants can join after host authentication using:
If host.user_auth
is enabled, participants can join with mandatory credentials:
Embed a meeting
To embed a meeting in your service or app
using an iframe, use the following code:
<iframe allow="camera; microphone; display-capture; fullscreen; clipboard-read; clipboard-write; autoplay" src="https://sfu.mirotalk.com/newroom" style="height: 100vh; width: 100vw; border: 0px;" ></iframe>
Quick Start
Before running MiroTalk SFU, ensure you have Node.js
and all requirements installed. This project has been tested with Node version 16.X and 18.X.
Requirements install example for Ubuntu 20.04
# Gcc g++ make $ apt-get update $ apt-get install -y build-essentialPython 3.8 and pip
$ 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
NodeJS 18.X and npm
$ apt install -y curl dirmngr apt-transport-https lsb-release ca-certificates $ curl -sL https://deb.nodesource.com/setup_18.x | bash - $ apt-get install -y nodejs $ npm install -g npm@latest
# Clone this repo $ git clone https://github.com/miroslavpejic85/mirotalksfu.gitGo to to dir mirotalksfu
$ cd mirotalksfu
Copy app/src/config.template.js in app/src/config.js and edit it if needed
$ cp app/src/config.template.js app/src/config.js
Install dependencies - be patient, the first time will take a few minutes, in the meantime have a good coffee ;)
$ npm install
Start the server
$ npm start
If you want to start the server on a different port than the default use an env var
$ PORT=3011 npm start
:3011
if the default port has been changed in your browser.Note To run
MiroTalk SFU
on aWindows operating system
, you can follow the instructions provided in this documentation.
Docker
# Copy app/src/config.template.js in app/src/config.js IMPORTANT (edit it according to your needs) $ cp app/src/config.template.js app/src/config.jsCopy docker-compose.template.yml in docker-compose.yml and edit it if needed
$ cp docker-compose.template.yml docker-compose.yml
(Optional) Get official image from Docker Hub
$ docker-compose pull
Create and start containers
$ docker-compose up # -d
To stop and remove resources
$ docker-compose down
Documentations
Ngrok/HTTPS:
You can start a video conference directly from your local PC and make it accessible from any device outside your network by following these instructions, or expose it directly on HTTPS.
Self-hosting:
For self-hosting MiroTalk SFU
on your own dedicated server, please refer to this comprehensive guide. It will provide you with all the necessary instructions to get your MiroTalk SFU instance up and running smoothly.
Rest API:
The API documentation uses swagger at https://localhost:3010/api/v1/docs or check it on live here.
# The response will give you a entrypoint / Room URL for your meeting. $ curl -X POST "http://localhost:3010/api/v1/meeting" -H "authorization: mirotalksfu_default_secret" -H "Content-Type: application/json" $ curl -X POST "https://sfu.mirotalk.com/api/v1/meeting" -H "authorization: mirotalksfu_default_secret" -H "Content-Type: application/json" # The response will give you a entrypoint / URL for the direct join to the meeting. $ curl -X POST "http://localhost:3010/api/v1/join" -H "authorization: mirotalksfu_default_secret" -H "Content-Type: application/json" --data '{"room":"test","password":"false","name":"mirotalksfu","audio":"false","video":"false","screen":"false","notify":"false"}' $ curl -X POST "https://sfu.mirotalk.com/api/v1/join" -H "authorization: mirotalksfu_default_secret" -H "Content-Type: application/json" --data '{"room":"test","password":"false","name":"mirotalksfu","audio":"false","video":"false","screen":"false","notify":"false"}'
Hetzner & Contabo
This application is running for demonstration purposes
on Hetzner, one of the best
cloud providers and dedicated root servers.
Use my personal link to receive €20 IN CLOUD CREDITS
.
Experience also top-tier German web hosting – dedicated servers, VPS, and web hosting at unbeatable prices
. Reliable, secure, and backed by 24/7 support. Explore now here
To set up your own instance of MiroTalk SFU
on a dedicated cloud server, please refer to our comprehensive self-hosting documentation. This guide will walk you through the process step by step, ensuring a smooth and successful deployment.
DigitalOcean
For personal use, you can start with a single $5 a month cloud server and scale up as needed. You can use this link to get a $100 credit for the first 60 days
.
Live Demo
Credits
Contributing
npm run lint
License
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
. Get a quick overview of the license at Choose an open source license.
To obtain a MiroTalk SFU 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 SFU 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 SFU. Your support is vital in ensuring that this valuable platform continues to thrive and remain accessible for all. Make an impact – back MiroTalk SFU today and be part of this exciting journey!
Advertisers
Diving into Additional MiroTalk Projects:
MiroTalk P2P
Try also MiroTalk P2P peer to peer
real-time video conferences, optimized for small groups. Unlimited time, unlimited concurrent rooms
each having 5-8 participants.
MiroTalk C2C
Try also MiroTalk C2C peer to peer
real-time video conferences, optimized for cam 2 cam. Unlimited time, unlimited concurrent rooms
each having 2 participants.
MiroTalk BRO
Try also MiroTalk BRO Live broadcast
(peer to peer) live video, audio and screen stream to all connected users (viewers). Unlimited time, unlimited concurrent rooms
each having a broadcast and many viewers.
MiroTalk WEB
Try also MiroTalk WEB a platform that allows for the management of an unlimited number of users
. Each user must register with their email, username, and password, after which they gain access to their personal dashboard
. Within the dashboard, users can manage their rooms and schedule meetings
using the desired version of MiroTalk on a specified date and time. Invitations to these meetings can be sent via email, shared through the web browser, or sent via SMS.
This project is tested with BrowserStack.
Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.
We'll never share your email with anyone else.