From a6c0ffc35b346a734feccbebe44a32643cfa7829 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A5=D0=B0=D0=BB=D0=B8=D0=BC=D0=BE=D0=B2=20=D0=A0=D1=83?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=BC?= Date: Wed, 11 Mar 2026 00:27:11 +0300 Subject: [PATCH] TURN --- DOKPLOY.md | 12 ++++++++++++ docker-compose.yml | 22 ++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/DOKPLOY.md b/DOKPLOY.md index f7b9b40..5741a83 100644 --- a/DOKPLOY.md +++ b/DOKPLOY.md @@ -63,6 +63,18 @@ Dokploy — это мощная self-hosted PaaS платформа, котор * Путь в контейнере: `/app/apps/server/uploads` * Путь на хосте: `/var/lib/dokploy/vortex/uploads` +## Настройка звонков (TURN сервер) + +Для того чтобы звонки работали через интернет (вне локальной сети), обязателен TURN-сервер. Я добавил его в `docker-compose.yml`. + +**Важно:** Чтобы звонки заработали, вам НУЖНО открыть следующие порты на вашем сервере/роутере: +1. `3478` (TCP и UDP) — основной порт TURN. +2. `49152-49170` (UDP) — диапазон портов для передачи медиа-трафика. + +В Dokploy убедитесь, что в переменных окружения прописан ваш домен: +* `DOMAIN`: `mess.khomegeneric.keenetic.pro` +* `TURN_SECRET`: `dcf1c1827c0c520d45130e282ea26991` + ## Запуск в локальной сети (без домена / по IP) Если вы хотите пользоваться мессенджером прямо сейчас по IP-адресу или в локальной сети: diff --git a/docker-compose.yml b/docker-compose.yml index e4a297a..1c614ec 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -24,6 +24,8 @@ services: JWT_SECRET: ${JWT_SECRET:-your-secure-random-secret-key-here} CORS_ORIGINS: ${CORS_ORIGINS:-http://localhost,http://localhost:80,http://localhost:9090,http://localhost:5173} ENCRYPTION_KEY: ${ENCRYPTION_KEY:-0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef} + TURN_URL: ${TURN_URL:-turn:${DOMAIN:-mess.khomegeneric.keenetic.pro}:3478} + TURN_SECRET: ${TURN_SECRET:-dcf1c1827c0c520d45130e282ea26991} depends_on: - db ports: @@ -42,5 +44,25 @@ services: depends_on: - server + turn: + image: coturn/coturn + container_name: vortex-turn + restart: always + ports: + - "3478:3478" + - "3478:3478/udp" + - "49152-49170:49152-49170/udp" + environment: + - DETECT_EXTERNAL_IP=yes + command: + - -n + - --log-file=stdout + - --min-port=49152 + - --max-port=49170 + - --realm=${DOMAIN:-mess.khomegeneric.keenetic.pro} + - --static-auth-secret=${TURN_SECRET:-dcf1c1827c0c520d45130e282ea26991} + - --no-tls + - --no-dtls + volumes: postgres_data: