192 lines
6.1 KiB
Markdown
192 lines
6.1 KiB
Markdown
# Mirotalk
|
|
|
|
🚀 `A free WebRTC browser-based video call, chat and screen sharing` 🚀
|
|
|
|
<br>
|
|
|
|
[//]: https://img.shields.io/badge/<LABEL>-<MESSAGE>-<COLOR>
|
|
|
|
[](https://www.linkedin.com/in/miroslav-pejic-976a07101/)
|
|

|
|
[](https://paypal.me/MiroslavPejic?locale.x=it_IT)
|
|
[](https://github.com/miroslavpejic85/mirotalk)
|
|
[](https://github.com/prettier/prettier)
|
|
[](https://gitter.im/mirotalk/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
|
[](https://discord.gg/c5AZn8yKbQ)
|
|
|
|
Powered by `WebRTC` using google Stun and [numb](http://numb.viagenie.ca/) Turn. `Mirotalk` provides video quality and latency not available with traditional technology.
|
|
|
|
Open the app in one of following **supported browser**
|
|
|
|
[//]: #
|
|
|
|
[](https://mirotalk.herokuapp.com/)
|
|
|
|
## https://mirotalk.herokuapp.com/
|
|
|
|
<br>
|
|
|
|
[](https://mirotalk.herokuapp.com/)
|
|
|
|
## Features
|
|
|
|
- Is `100% Free` and `Open Source`
|
|
- No download, plug-in or login required, entirely browser based
|
|
- Unlimited number of conference rooms without call time limitation
|
|
- Desktop and Mobile compatible
|
|
- Optimized Room Url Sharing (share it to your participants, wait them to join)
|
|
- WebCam Streaming (Front - Rear for mobile)
|
|
- Audio Streaming
|
|
- Screen Sharing to present documents, slides, and more...
|
|
- File Sharing, share any files to your participants in the room
|
|
- Select Audio Input - Output && Video source
|
|
- Recording your Screen, Audio and Video
|
|
- Chat with Emoji Picker & Private messages & Save the conversations
|
|
- Simple Whiteboard for the teachers
|
|
- Full Screen Mode on mouse click on the Video element
|
|
- Possibility to Change UI Themes
|
|
- Right click on the Video elements for more options
|
|
- Direct `peer-to-peer` connection ensures lowest latency thanks to `webrtc`
|
|
|
|
## Demo
|
|
|
|
- `Open` https://mirotalk.herokuapp.com/newcall `or` https://mirotalk.up.railway.app/newcall
|
|
- `Pick` your personal Room name and `Join To Room`
|
|
- `Allow` to use the camera and microphone
|
|
- `Share` the Room URL and `Wait` someone to join for video conference
|
|
|
|
## Room name
|
|
|
|
- You can also `join` directly to your room name by going to https://mirotalk.herokuapp.com/join/your-room-name-goes-here `or` https://mirotalk.up.railway.app/join/your-room-name-goes-here
|
|
|
|
## Quick start
|
|
|
|
- You will need to have [Node.js](https://nodejs.org/en/blog/release/v12.22.1/) installed, this project has been tested with Node version 12.X
|
|
- Clone this repo
|
|
|
|
```bash
|
|
git clone https://github.com/miroslavpejic85/mirotalk.git
|
|
cd mirotalk
|
|
```
|
|
|
|
## Setup Turn and Ngrok
|
|
|
|
- Copy .env.template to .env
|
|
|
|
```bash
|
|
cp .env.template .env
|
|
```
|
|
|
|
`Turn`
|
|
|
|
Not mandatory but recommended.
|
|
|
|
- Create an account on http://numb.viagenie.ca
|
|
- Get your Account USERNAME and PASSWORD
|
|
- Fill in your credentials in the `.env` file
|
|
- Set `TURN_ENABLED=true`, if you want enable the Turn Server.
|
|
|
|
`Ngrok`
|
|
|
|
Not mandatory at all, but useful for tests and debug.
|
|
|
|
- Get started for free https://ngrok.com/
|
|
- Fill in your authtoken in the `.env` file
|
|
- Set `NGROK_ENABLED=true`, if you want to expose the server using the https tunnel, starting it from your local PC.
|
|
|
|
## Install dependencies
|
|
|
|
```js
|
|
npm install
|
|
```
|
|
|
|
## Start the server
|
|
|
|
```js
|
|
npm start
|
|
```
|
|
|
|
- Open http://localhost:3000 in browser
|
|
|
|
---
|
|
|
|
## Docker
|
|
|
|
Install: https://docs.docker.com/compose/install/
|
|
|
|
```bash
|
|
cp .env.template .env
|
|
docker-compose up # or
|
|
docker-compose up -d
|
|
```
|
|
|
|
- Open http://localhost:3000 in browser
|
|
|
|
To `Update` image after some mirotalk `changes` or `updates`.
|
|
|
|
```bash
|
|
docker-compose build
|
|
```
|
|
|
|
To `Stops` containers and removes containers, networks, volumes, and images created by `up`
|
|
|
|
```bash
|
|
docker-compose down
|
|
```
|
|
|
|
## API
|
|
|
|
The `response` will give you a `entrypoint / Room URL` for `your meeting`.
|
|
|
|
```bash
|
|
curl -X POST "http://localhost:3000/api/v1/meeting" -H "authorization: YourApiKeySecret" -H "Content-Type: application/json" -d "{ \"title\": \"Mirotlak GET meeting\"}"
|
|
curl -X POST "https://mirotalk.up.railway.app/api/v1/meeting" -H "authorization: mirotalk_default_secret" -H "Content-Type: application/json" -d "{ \"title\": \"Mirotlak GET meeting\"}"
|
|
curl -X POST "https://mirotalk.herokuapp.com/api/v1/meeting" -H "authorization: mirotalk_default_secret" -H "Content-Type: application/json" -d "{ \"title\": \"Mirotlak GET meeting\"}"
|
|
```
|
|
|
|
---
|
|
|
|
If you want to use a client on another computer/network, make sure you publish your server on an `HTTPS` connection.
|
|
You can use a service like [ngrok](https://ngrok.com/) or deploy it on:
|
|
|
|
<br>
|
|
|
|
[](https://www.heroku.com/)
|
|
|
|
`demo` https://mirotalk.herokuapp.com/
|
|
|
|

|
|
|
|
<br>
|
|
|
|
[](https://railway.app)
|
|
|
|
`demo` https://mirotalk.up.railway.app/
|
|
|
|

|
|
|
|
---
|
|
|
|
## Credits
|
|
|
|
Many Thanks to:
|
|
|
|
- ianramzy (html template)
|
|
- vasanthv (webrtc)
|
|
- Sajad (chat)
|
|
- i-aryan (whiteboard)
|
|
|
|
From where I took inspiration for this project. ❤️
|
|
|
|
## Contributing
|
|
|
|
- Pull Requests are welcome! :slightly_smiling_face:
|
|
- Please run [prettier](https://prettier.io) on all of your PRs before submitting, this can be done with `prettier --write mirotalk/`
|
|
- For communication we use [gitter](https://gitter.im/) or [discord](https://discord.com/) chats which can be found here:
|
|
|
|
[](https://gitter.im/mirotalk/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) [](https://discord.gg/c5AZn8yKbQ)
|
|
|
|
---
|
|
|
|
<p align="center"> Made with ❤️ by <a href="https://www.linkedin.com/in/miroslav-pejic-976a07101/">Miroslav Pejic</a></p>
|