revert coturn container, use Snikket built-in TURN instead
The snikket_server image includes a TURN server that is enabled by default (SNIKKET_TWEAK_TURNSERVER=1). A separate coturn container conflicts on port 3478 and adds unnecessary complexity for a standard deployment. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
4e316e9566
commit
9d463e5f96
@ -10,7 +10,6 @@ XMPP-сервер на базе [Snikket](https://snikket.org/) (обёртка
|
||||
| `snikket_proxy` | `snikket/snikket-web-proxy:stable` | Веб-прокси (nginx) |
|
||||
| `snikket_certs` | `snikket/snikket-cert-manager:stable` | Автоматическое получение TLS-сертификатов (Let's Encrypt) |
|
||||
| `snikket_portal` | `snikket/snikket-web-portal:stable` | Веб-портал для управления пользователями и инвайтами |
|
||||
| `snikket_turn` | `coturn/coturn:latest` | TURN/STUN-сервер для голосовых и видеозвонков |
|
||||
| `s3_upload_handler` | собирается из `./s3-upload-handler` | Обработчик загрузки файлов — принимает файлы от XMPP-клиентов и сохраняет в S3 |
|
||||
| `postgres` | `postgres:15` | База данных PostgreSQL для Prosody |
|
||||
|
||||
@ -87,7 +86,6 @@ cp secrets.env.example secrets.env
|
||||
| `AWS_ACCESS_KEY_ID` | Ключ доступа AWS/S3 |
|
||||
| `AWS_SECRET_ACCESS_KEY` | Секретный ключ AWS/S3 |
|
||||
| `POSTGRES_PASSWORD` | Пароль PostgreSQL |
|
||||
| `TURN_SECRET` | Shared secret для TURN-аутентификации (должен совпадать между coturn и Prosody). Генерация: `openssl rand -hex 32` |
|
||||
|
||||
### S3 Upload Handler (environment)
|
||||
|
||||
|
||||
@ -61,34 +61,6 @@ services:
|
||||
PRESIGN_EXPIRE: "3600"
|
||||
restart: "unless-stopped"
|
||||
|
||||
snikket_turn:
|
||||
container_name: snikket-turn
|
||||
image: coturn/coturn:latest
|
||||
network_mode: host
|
||||
env_file:
|
||||
- snikket.conf
|
||||
- secrets.env
|
||||
volumes:
|
||||
- snikket_data:/snikket:ro
|
||||
entrypoint: ["/bin/sh", "-c"]
|
||||
command: >-
|
||||
turnserver
|
||||
--use-auth-secret
|
||||
--static-auth-secret=$$TURN_SECRET
|
||||
--realm=$$SNIKKET_DOMAIN
|
||||
--listening-port=3478
|
||||
--tls-listening-port=5349
|
||||
--cert=/snikket/letsencrypt/live/$$SNIKKET_DOMAIN/fullchain.pem
|
||||
--pkey=/snikket/letsencrypt/live/$$SNIKKET_DOMAIN/privkey.pem
|
||||
--min-port=49152
|
||||
--max-port=65535
|
||||
--fingerprint
|
||||
--no-cli
|
||||
--log-file=stdout
|
||||
restart: "unless-stopped"
|
||||
depends_on:
|
||||
- snikket_certs
|
||||
|
||||
postgres:
|
||||
container_name: snikket-postgres
|
||||
image: postgres:17
|
||||
|
||||
@ -26,7 +26,6 @@ modules_disabled = {
|
||||
|
||||
modules_enabled = {
|
||||
"http_upload_external";
|
||||
"external_services";
|
||||
}
|
||||
|
||||
-- URL of the external upload service that handles S3 interaction.
|
||||
@ -45,35 +44,3 @@ http_upload_external_expire_after = 3600
|
||||
-- Max file size in bytes (10 MB)
|
||||
http_upload_external_file_size_limit = 10485760
|
||||
|
||||
----------------------------------------------------------------------
|
||||
-- TURN/STUN for voice/video calls (via mod_external_services)
|
||||
-- Credentials are generated on-the-fly using TURN REST API (RFC 8489 §9.2)
|
||||
-- Shared secret must match TURN_SECRET in secrets.env
|
||||
----------------------------------------------------------------------
|
||||
|
||||
external_services = {
|
||||
{
|
||||
type = "stun";
|
||||
host = os.getenv("SNIKKET_DOMAIN");
|
||||
port = 3478;
|
||||
transport = "udp";
|
||||
},
|
||||
{
|
||||
type = "turn";
|
||||
host = os.getenv("SNIKKET_DOMAIN");
|
||||
port = 3478;
|
||||
transport = "udp";
|
||||
secret = os.getenv("TURN_SECRET");
|
||||
algorithm = "turn";
|
||||
ttl = 86400;
|
||||
},
|
||||
{
|
||||
type = "turns";
|
||||
host = os.getenv("SNIKKET_DOMAIN");
|
||||
port = 5349;
|
||||
transport = "tcp";
|
||||
secret = os.getenv("TURN_SECRET");
|
||||
algorithm = "turn";
|
||||
ttl = 86400;
|
||||
},
|
||||
};
|
||||
|
||||
@ -5,7 +5,3 @@ AWS_SECRET_ACCESS_KEY=change-me
|
||||
|
||||
# PostgreSQL secrets
|
||||
POSTGRES_PASSWORD=change-me
|
||||
|
||||
# TURN server shared secret (used by both coturn and Prosody mod_external_services)
|
||||
# Generate with: openssl rand -hex 32
|
||||
TURN_SECRET=change-me
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user