From 352472a7ec4f5bbf9c1e068975b91c16a67829fe Mon Sep 17 00:00:00 2001 From: Miroslav Pejic Date: Fri, 10 Jan 2025 11:31:18 +0100 Subject: [PATCH] [mirotalkbro] - add coturn docker compose --- .gitignore | 3 +- app/server.js | 2 +- coturn/README.md | 64 ++++++++++++++++++++++++++++++ coturn/docker-compose.template.yml | 11 +++++ coturn/turnserver.template.conf | 23 +++++++++++ package.json | 2 +- 6 files changed, 102 insertions(+), 3 deletions(-) create mode 100644 coturn/README.md create mode 100644 coturn/docker-compose.template.yml create mode 100644 coturn/turnserver.template.conf diff --git a/.gitignore b/.gitignore index 0d50783..b1ed575 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,5 @@ package-lock.json # personal .env docker-compose.yml -docker-push.sh \ No newline at end of file +docker-push.sh +turnserver.conf \ No newline at end of file diff --git a/app/server.js b/app/server.js index 00a509f..3ccee3f 100644 --- a/app/server.js +++ b/app/server.js @@ -8,7 +8,7 @@ * @license For open source under AGPL-3.0 * @license For private project or commercial purposes contact us at: license.mirotalk@gmail.com * @author Miroslav Pejic - miroslav.pejic.85@gmail.com - * @version 1.0.70 + * @version 1.0.71 */ require('dotenv').config(); diff --git a/coturn/README.md b/coturn/README.md new file mode 100644 index 0000000..0688e76 --- /dev/null +++ b/coturn/README.md @@ -0,0 +1,64 @@ +# 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. + +### 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/). diff --git a/coturn/docker-compose.template.yml b/coturn/docker-compose.template.yml new file mode 100644 index 0000000..3e9c27b --- /dev/null +++ b/coturn/docker-compose.template.yml @@ -0,0 +1,11 @@ +services: + coturn: + image: coturn/coturn + container_name: coturn + network_mode: 'host' + user: 'root' + restart: unless-stopped + volumes: + - ./turnserver.conf:/etc/coturn/turnserver.conf + - /etc/letsencrypt/live/YOUR.DOMAIN.NAME/fullchain.pem:/etc/letsencrypt/live/YOUR.DOMAIN.NAME/fullchain.pem + - /etc/letsencrypt/live/YOUR.DOMAIN.NAME/privkey.pem:/etc/letsencrypt/live/YOUR.DOMAIN.NAME/privkey.pem diff --git a/coturn/turnserver.template.conf b/coturn/turnserver.template.conf new file mode 100644 index 0000000..4ad2a01 --- /dev/null +++ b/coturn/turnserver.template.conf @@ -0,0 +1,23 @@ +listening-port=3478 +tls-listening-port=5349 + +min-port=10000 +max-port=20000 + +fingerprint +lt-cred-mech + +user=YOUR.USERNAME:YOUR.PASSWORD + +server-name=YOUR.DOMAIN.NAME +realm=YOUR.DOMAIN.NAME + +total-quota=100 +stale-nonce=600 + +cert=/etc/letsencrypt/live/YOUR.DOMAIN.NAME/fullchain.pem +pkey=/etc/letsencrypt/live/YOUR.DOMAIN.NAME/privkey.pem + +cipher-list="ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384" + +no-stdout-log \ No newline at end of file diff --git a/package.json b/package.json index 3235626..34d999f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mirotalkbro", - "version": "1.0.70", + "version": "1.0.71", "description": "P2P WebRTC audio, video and screen live broadcast", "main": "app/server.js", "scripts": {