mirror of
https://github.com/dartdavros/chatballs.git
synced 2026-10-06 09:34:59 +03:00
- turn.py: краткоживущие TURN REST-credentials (coturn use-auth-secret), username "<expiry>:hub", credential base64(HMAC-SHA1(secret, username)) - ice_servers_payload: direct-first STUN + TURN fallback, генерация на каждый запрос токена; без секрета TURN-URL не отдаются - settings + env: HUB_CALL_TURN_URLS/SECRET/TTL_SECONDS - compose.production: сервис coturn (host net, realm/secret/relay-range/ external-ip, hardening, healthcheck turnutils_stunclient) - tests: формат credentials, HMAC, порядок direct-first, отказ без секрета Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
65 lines
2.5 KiB
Bash
65 lines
2.5 KiB
Bash
COMPOSE_PROJECT_NAME=edevs_hub
|
|
|
|
HUB_ENV=local
|
|
HUB_DEBUG=true
|
|
HUB_SECRET_KEY=change-me-only-for-local-development
|
|
HUB_ALLOWED_HOSTS=localhost,127.0.0.1,hub.localhost
|
|
HUB_CSRF_TRUSTED_ORIGINS=http://localhost,http://localhost:8000,http://localhost:5173,http://localhost:5175
|
|
HUB_CORS_ALLOWED_ORIGINS=http://localhost:5173,http://localhost:5175
|
|
|
|
# Шифрование секретов в БД (Fernet-ключ). В local не обязателен — выводится из
|
|
# HUB_SECRET_KEY; в production задайте отдельный ключ: Fernet.generate_key().
|
|
HUB_FIELD_ENCRYPTION_KEY=
|
|
|
|
# AI-провайдер. Локально по умолчанию тестовый адаптер; в production задайте ключ.
|
|
# HUB_AI_PROVIDER=openrouter
|
|
HUB_OPENROUTER_API_KEY=
|
|
# HUB_OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
|
|
# HUB_AI_REQUEST_TIMEOUT=30
|
|
# HUB_AI_MAX_RETRIES=2
|
|
# HUB_AI_GLOBAL_DAILY_COST_LIMIT_MICROS=0
|
|
|
|
# Транспортная безопасность. Вне HUB_DEBUG включается автоматически; здесь — для переопределения.
|
|
# HUB_COOKIE_SECURE=true
|
|
# HUB_SSL_REDIRECT=true
|
|
# HUB_HSTS_SECONDS=31536000
|
|
# HUB_COOKIE_SAMESITE=Lax
|
|
|
|
# Email (по умолчанию console backend; для реальной отправки задайте SMTP).
|
|
# EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend
|
|
# EMAIL_HOST=
|
|
# EMAIL_HOST_USER=
|
|
# EMAIL_HOST_PASSWORD=
|
|
# DEFAULT_FROM_EMAIL=Edevs Hub <no-reply@edevs.tech>
|
|
INTERNAL_UI_BASE_URL=http://localhost:5173
|
|
|
|
POSTGRES_DB=edevs_hub
|
|
POSTGRES_USER=edevs_hub
|
|
POSTGRES_PASSWORD=edevs_hub
|
|
POSTGRES_HOST=postgres
|
|
POSTGRES_PORT=5432
|
|
|
|
REDIS_URL=redis://redis:6379/0
|
|
|
|
# P2P calls: invite — 5 минут, access token — 1 час.
|
|
HUB_CALL_INVITE_TTL_SECONDS=300
|
|
HUB_CALL_ACCESS_TTL_SECONDS=3600
|
|
HUB_CALL_CONNECT_GRACE_SECONDS=120
|
|
HUB_CALL_RECONNECT_GRACE_SECONDS=60
|
|
# STUN для WebRTC (через запятую). Локально обычно пусто: direct ICE на localhost.
|
|
HUB_CALL_STUN_URLS=
|
|
# TURN (Coturn) — production-контур; локально пусто (direct/STUN достаточно).
|
|
HUB_CALL_TURN_URLS=
|
|
HUB_CALL_TURN_SECRET=
|
|
HUB_CALL_TURN_TTL_SECONDS=3600
|
|
|
|
INTERNAL_UI_PORT=5173
|
|
WEB_CHAT_PORT=5175
|
|
BACKEND_PORT=8010
|
|
|
|
VITE_API_BASE_URL=http://localhost:8010
|
|
|
|
# Публичный домен Hub для встраивания Web-виджета (SPEC-HUB-0003 §3).
|
|
# Подставляется в src сниппета: <VITE_PUBLIC_HUB_URL>/chat-widget.js
|
|
VITE_PUBLIC_HUB_URL=https://hub.edevs.tech
|