## 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)**