## 1. Project Overview & Quickstart (miroslavpejic85/mirotalk)
## File: README.md
MiroTalk P2P
Open Source WebRTC P2P Video Conferencing You Can Self-Host in Minutes
Free, Secure, Fast Real-Time Communication - up to 8K, 60fps. Works in All Browsers and Platforms.
[Recall.ai](https://www.recall.ai/?utm_source=github&utm_medium=sponsorship&utm_campaign=miroslavpejic85-mirotalk) - API for meeting recording
β¨ Why MiroTalk P2P?
| | MiroTalk P2P | Other Solutions |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |
| π° **Cost** | Free & Open Source (AGPLv3). [One-time fee licenses](https://codecanyon.net/item/mirotalk-p2p-webrtc-realtime-video-conferences/38376661) 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](https://docs.mirotalk.com/mirotalk-p2p/host-protection/) Β· JWT credentials Β· Room passwords Β· Peer-to-peer encryption
- π REST API Β· Slack & Mattermost Β· Embeddable [iframe](https://docs.mirotalk.com/mirotalk-p2p/integration/#iframe) & [widget](https://docs.mirotalk.com/mirotalk-p2p/integration/#widgets-integration) Β· 133 languages
**[See all features β](https://docs.mirotalk.com/overview/)**
β‘ Quick start
**Start in 6 commands:**
```bash
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](http://localhost:3000) - done!
π³ Docker
**Prerequisites:** Install [Docker Engine](https://docs.docker.com/engine/install/) and [Docker Compose](https://docs.docker.com/compose/install/) - Image available on [Docker Hub](https://hub.docker.com/r/mirotalk/p2p)
```bash
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](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](https://docs.mirotalk.com)**:
- [Our Story](https://docs.mirotalk.com/story/)
- [About](https://docs.mirotalk.com/mirotalk-p2p/)
- [Self-Hosting Guide](https://docs.mirotalk.com/mirotalk-p2p/self-hosting/)
- [Automation-scripts](https://docs.mirotalk.com/scripts/about/)
- [Configurations](https://docs.mirotalk.com/mirotalk-p2p/configurations/)
- [Rebranding](https://docs.mirotalk.com/mirotalk-p2p/rebranding/)
- [Host Protection Mode](https://docs.mirotalk.com/mirotalk-p2p/host-protection/)
- [Integration](https://docs.mirotalk.com/mirotalk-p2p/integration/)
- [Direct Room Join](https://docs.mirotalk.com/mirotalk-p2p/join-room/)
- [REST API Documentation](https://docs.mirotalk.com/mirotalk-p2p/api/)
- [Ngrok](https://docs.mirotalk.com/mirotalk-p2p/ngrok/)
- [Updates](https://docs.mirotalk.com/mirotalk-p2p/updates/)
- [WebHook](https://docs.mirotalk.com/mirotalk-p2p/webhook/)
βοΈ Recommended Hosting Providers
| Provider | Description | Link |
| ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| [](https://www.cloudron.io/) | One-click install from the [Cloudron App Store](https://www.cloudron.io/store/index.html). Automates deployment, updates, backups, and user management. | [Get Started](https://www.cloudron.io/) |
| [](https://www.hetzner.com) | High-performance cloud servers and dedicated root servers with top-tier reliability. Powers our live demo. | [Get β¬20 Free Credits](https://hetzner.cloud/?ref=XdRifCzCK3bn) |
| [](https://www.netcup.com/en/?ref=309627) | Enterprise-grade performance at unbeatable prices. Scalable and reliable. | [Explore Netcup](https://www.netcup.com/en/?ref=309627) |
| [](https://hostinger.com/?REFERRALCODE=MIROTALK) | Fast, reliable hosting with 24/7 support and great performance. | [Check out Hostinger](https://hostinger.com/?REFERRALCODE=MIROTALK) |
| [](https://www.dpbolvw.net/click-101027391-14462707) | Top-tier German hosting, dedicated servers, VPS, and web hosting at unbeatable prices. | [Explore Contabo](https://www.dpbolvw.net/click-101027391-14462707) |
To set up your own instance of `MiroTalk P2P` on a dedicated cloud server, please refer to our comprehensive [self-hosting documentation](https://docs.mirotalk.com/mirotalk-p2p/self-hosting/).
π Credits
- ianramzy (html [template](https://cruip.com/demos/neon/))
- vasanthv (webrtc-logic)
- fabric.js (whiteboard)
- [DiceBear](https://www.dicebear.com/) (random avatars)
- [Image by ddraw on Freepik](https://www.freepik.com/free-vector/collection-female-male-avatars_1105371.htm) (avatar illustrations)
π€ 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](https://discord.gg/rgGYfeYW3N)!
π License
[](LICENSE)
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](https://choosealicense.com/licenses/agpl-3.0/).
To obtain a [MiroTalk P2P license](https://docs.mirotalk.com/license/licensing-options/) with terms different from the AGPLv3, you can conveniently make your [purchase on CodeCanyon](https://codecanyon.net/item/mirotalk-p2p-webrtc-realtime-video-conferences/38376661). 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](https://github.com/sponsors/miroslavpejic85). 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!
| | | |
| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------- |
| [](https://evoplat.com) | [](https://cloudron.io) | [](https://effectssdk.ai/) |
| [](https://www.questionpro.com) | [](https://www.testmuai.com/?utm_medium=sponsor&utm_source=mirotalk) | [](https://www.browserstack.com) |
| [](https://crystalsound.ai) | [](https://www.netcup.com/en/?ref=309627) | [](https://www.liveavatar.com/?utm_medium=sponsership&utm_campaign=mirotalk) |
π Past Sponsors
We are grateful to our past sponsors for their support!
| | | |
| -------------------------------------------------------------------------------------- | --------------------------------------------------------------- | ----------------------------------------------------------------------- |
| [](https://hetzner.cloud/?ref=XdRifCzCK3bn) | [](https://kiquix.com) | [](https://broadcastx.de/) |
| [](https://luvlounge.ca) | | |
π’ Advertisers
---
| | | |
| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| [](https://hostinger.com/?REFERRALCODE=MIROTALK) | [](https://www.dpbolvw.net/click-101027391-14462707) | [](https://rambox.app?via=mirotalk) |
---
β¨ EffectsSDK
[](https://effectssdk.ai/)
Enhance your video conferencing with **advanced virtual backgrounds** and **noise suppression**. EffectsSDK offers powerful SDKs and plugins for fast integration.
- π₯ [AI Video Effects Extension](https://chromewebstore.google.com/detail/effetti-webcam-ai-+-regis/iedbphhbpflhgpihkcceocomcdnemcbj): Virtual backgrounds and effects for your webcam
- π [Noise Cancelling Extension](https://chromewebstore.google.com/detail/noise-cancelling-app/njmhcidcdbaannpafjdljminaigdgolj): Clearer audio with background noise reduction
- π οΈ [Integrate EffectsSDK](https://github.com/EffectsSDK): SDKs and plugins for custom solutions
---
This project is tested with [BrowserStack](https://www.browserstack.com).
---
---
Contributors
---
## File: app/ssl/README.md
## Expose MiroTalk on HTTPS
Generate a [self-signed certificate](https://en.wikipedia.org/wiki/Self-signed_certificate)
```bash
# install openssl 4 ubuntu
apt install openssl
# install openssl 4 mac
brew install openssl
# self-signed certificate
openssl genrsa -out key.pem
openssl req -new -key key.pem -out csr.pem
openssl x509 -req -days 9999 -in csr.pem -signkey key.pem -out cert.pem
rm csr.pem
# https://www.sslchecker.com/certdecoder
```
---
## File: app/api/README.md
## Create a Meeting
To initiate a meeting, send an HTTP request to MiroTalkβs server with your API key. Replace the default secret key in `.env` with your own.
```bash
API_KEY_SECRET=mirotalkp2p_default_secret
```
Use the following examples to make API calls:
```bash
# Node.js
node meeting.js
node join.js
node token.js
# PHP
php meeting.php
php join.php
php token.php
# Python
python3 meeting.py
python3 join.py
python3 token.py # rename token in something else
# Bash
./meeting.sh
./join.sh
./token.sh
```
The server response will contain a meeting URL that can be embedded in your client using an iframe.
---
## Embed a Meeting
To embed a meeting in your service or app, use an iframe with the source attribute set to the meeting URL obtained from the HTTP response.
```html
```
---
## Fast Integration
Integrate video meetings into your website or application quickly by incorporating the following iframe code:
```html
```
---
## File: coturn/README.md
# CoTURN Setup Guide
Set up `CoTURN` with Docker for NAT traversal and media relay in WebRTC applications.
---
## Installation Steps
### 1. Prepare Docker Compose
1. Copy the template:
```bash
cp docker-compose.template.yml docker-compose.yml
```
2. Edit `docker-compose.yml` to fit your environment.
3. Use Let's Encrypt and Certbot for SSL certificates. Replace `YOUR.DOMAIN` in `docker-compose.yml` with your actual domain name.
- Learn more about Let's Encrypt: [Click here](https://letsencrypt.org/).
- Learn more about Certbot: [Click here](https://certbot.eff.org/).
### 2. Configure TURN Server
1. Copy the template:
```bash
cp turnserver.template.conf turnserver.conf
```
2. Edit `turnserver.conf`:
- Replace `YOUR.DOMAIN.NAME` with your domain.
- Replace `YOUR.USERNAME` and `YOUR.PASSWORD` with your credentials.
Example:
```text
server-name=example.com
realm=example.com
user=username:password
```
### 3. Verify Files
Ensure `turnserver.conf` and `docker-compose.yml` are in the same directory.
### 4. Start the Server
Run:
```bash
docker-compose up -d
```
### 5. Check Logs (Optional)
Check logs to verify the server:
```bash
docker-compose logs -f
```
---
## Notes
- Open ports (e.g., 3478, 5349 for TURN) on your firewall.
- Use secure credentials.
- Test with a WebRTC application.
For more, visit the [official documentation](https://docs.mirotalk.com/coturn/installation/).
---
## File: docs/coturn.md
# Install Coturn STUN/TURN server
### What are STUN and TURN in the context of network communication?
[https://docs.mirotalk.com/coturn/stun-turn/](https://docs.mirotalk.com/coturn/stun-turn/)
### How can I set up and configure my own STUN and TURN servers?
[https://docs.mirotalk.com/coturn/installation/](https://docs.mirotalk.com/coturn/installation/)
---
---
## File: docs/ngrok.md
# MiroTalk P2P - Ngrok
### What is the purpose and functionality of Ngrok?
[https://docs.mirotalk.com/ngrok/ngrok/](https://docs.mirotalk.com/ngrok/ngrok/)
### How to exposing MiroTalk P2P with Ngrok?
[https://docs.mirotalk.com/mirotalk-p2p/ngrok/](https://docs.mirotalk.com/mirotalk-p2p/ngrok/)
---
---
## File: docs/self-hosting.md
# MiroTalk P2P - Self Hosting
### How can I self-host MiroTalk P2P on my own server?
[https://docs.mirotalk.com/mirotalk-p2p/self-hosting/](https://docs.mirotalk.com/mirotalk-p2p/self-hosting/)
### Automation scripts
[https://docs.mirotalk.com/scripts/about/](https://docs.mirotalk.com/scripts/about/)
---
---
## File: kubernetes/README.md
# k8s deployment
## TLDR; and do not care way
```bash
$ make
$ sed -i s/localhost/myshinydomain.tld/g env.txt
$ make prepare
$ make deploy
```
# Understanding way
If you would like to deploy Mirotalk to kubernetes
this set of files can help you in that task
Bellow is explanation of files in this folder which will form one output file in `output` folder
## ../.env.template and your file env.txt that you should prepare
Configuration file that is for now used to configure deployment
you should copy `../.env.template` to current directory as `env.txt` and edit values inside to your liking
```bash
$ cp ../.env.template env.txt
```
Change values (if nothing else **HOST** variable must be changed so your ingress would recognize it and send requests to your deployed application),
if you do not have public domain you can use free service called [nip.io](https://nip.io/) with domain like `p2p.192-168-1-1.nip.io` (or [sslip.io](https://sslip.io/))
```bash
$ sed -i s/localhost/myshinydomain.tld/g env.txt
```
## p2p-deployment.yaml
Main deployment file where you change image file if you would like to use yours if not official one (`image`: tag)
## p2p-cert.yaml
This file represent definition of certificate (request) when using [Cert Manager](https://cert-manager.io/) to generate letsencrypt or private certificates for your domain will be pulled out from `env.txt`
## p2p-ingress.yaml
This is generic ingress object in kubernetes that is responsible to route external traffic to mirotalk deployed application and if used in conjuction with p2p-cert.yaml (default) will provide TLS enabled access to your mirotalk instance
## p2p-service.yaml
Service required for ingress to be able to know how to access deployment
## Makefile
Helper file that allows running it to configure application how you would like
after creating and changing configuration file (`env.txt`) run these two tasks, prepare will create deployment file
and deployment will create configMap from prepared `env.txt` file.
Please run after reading all this:
```bash
$ make
# edit env.txt or use sed as in TLDR section :)
$ make prepare
$ make deploy
```
## 2. Official Technical Reference & Guides (miroslavpejic85/mirotalk-docs)
MiroTalk DOCS
## Installation
To install `MkDocs`, you can use one of this method:
### Using `brew`
```bash
$ brew install mkdocs
$ brew install mkdocs-material
```
### Using `pip`
```bash
$ pip install mkdocs
$ pip install mkdocs-material
```
---
### Using `apt`
```bash
$ sudo apt update
$ sudo apt install mkdocs
```
---
### Using `snap`
```bash
$ sudo apt update
$ sudo apt install snapd
$ sudo snap install mkdocs
```
---
## Quick Start
```bash
# Clone the repo
$ git clone https://github.com/miroslavpejic85/mirotalk-docs.git
# Go to Docs dir
$ cd mirotalk-docs
# Start the built-in dev-server
$ mkdocs serve
```
Open up [http://127.0.0.1:8000](http://127.0.0.1:8000/) in your browser.
---
## Self hosting
[Here the documentation](./docs/docs/self-hosting.md)
---
## Credits
- **[MkDocs](https://github.com/mkdocs/mkdocs)**
- **[MkDocs-material](https://github.com/squidfunk/mkdocs-material)**