21 Commits

Author SHA1 Message Date
f39c21e7e1 release: версия 0.0.17
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
2026-08-01 23:20:31 +03:00
e5c596f2bf release: версия 0.0.16
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
2026-08-01 22:08:34 +03:00
0162cc8a6d release: версия 0.0.15
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
2026-07-30 00:27:51 +03:00
270926cc96 release: версия 0.0.14
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
2026-07-29 00:17:19 +03:00
705f160912 release: версия 0.0.13
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
2026-07-28 23:26:41 +03:00
6d65b620fe perf(backend): явный пул соединений БД и несколько воркеров uvicorn
Пул создавался с дефолтом SQLAlchemy (5 + 10) и под нагрузкой выгребался
за секунды. Теперь параметры заданы явно и вынесены в настройки:
DB_POOL_SIZE=10, DB_MAX_OVERFLOW=10, DB_POOL_TIMEOUT=10. Таймаут снижен с
дефолтных 30 секунд намеренно — пусть запрос падает быстро и показывает
проблему, а не висит полминуты.

Backend запускался одним процессом uvicorn: любой блокирующий вызов
останавливал и параллельные запросы, и WS-чат всех участников. Добавлен
UVICORN_WORKERS с дефолтом 2 — не по числу ядер, потому что на
четырёхъядерном сервере ядра делятся с LiveKit, а медиа важнее API.

Бюджет соединений считается на весь инстанс: каждый воркер держит свой
пул, поэтому UVICORN_WORKERS × (DB_POOL_SIZE + DB_MAX_OVERFLOW) должно
оставаться заметно ниже max_connections у Postgres.

Многопроцессность безопасна: бутстрап настроек в lifespan идемпотентен
(INSERT ... ON CONFLICT DO NOTHING), а WS-чат разносит сообщения через
Redis pub/sub и состояния в памяти процесса не держит.
2026-07-28 19:00:05 +03:00
b8220f682d release: версия 0.0.11
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
2026-07-28 04:26:02 +03:00
c5b241ae02 release: версия 0.0.10
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
2026-07-28 01:43:24 +03:00
54fd1a26d7 release: версия 0.0.9
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
2026-07-28 00:26:40 +03:00
413789ba22 release: версия 0.0.8
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
2026-07-27 21:10:08 +03:00
4b92f89efe release: версия 0.0.7
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
2026-07-27 17:42:03 +03:00
cfb3a941ab release: версия 0.0.6
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
2026-07-27 01:34:03 +03:00
28b87a8c95 release: версия 0.0.5
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
2026-07-27 00:56:37 +03:00
09a3c6c806 release: версия 0.0.4
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
2026-07-26 23:53:44 +03:00
dbda749756 release: версия 0.0.3 + CHANGELOG
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
Поднята версия до 0.0.3 (VERSION, .env.example, docker-compose дефолт).
CHANGELOG.md: адаптивная вёрстка для мобильных экранов — вход/регистрация,
комната конференции, админка (заголовок/вкладки/таблицы конференций и
пользователей), экран подключения к завершённой конференции.
2026-07-26 04:43:23 +03:00
1f457c2a31 release: версия 0.0.2 + CHANGELOG
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
Поднята версия до 0.0.2 (VERSION, .env.example, docker-compose дефолт).
Добавлен CHANGELOG.md с описанием изменений 0.0.1 → 0.0.2: харденинг
безопасности (порты на loopback, redis requirepass), перенос конфигов
деплоя в репозиторий (TLS-443, шаблоны, --env-file), fail-fast install.sh,
руководство docs/deploy/DEPLOYMENT.md.
2026-07-26 03:04:19 +03:00
5e42f6d11b deploy: require redis auth (--requirepass) across all consumers
Redis without a password was the root cause of the security incident
(cron miner via unauthenticated replication RCE, see
.forcc/deploy/SESSION2-FINDINGS.md). Loopback binding alone doesn't
protect against a compromised container inside the same compose
network, so wire REDIS_PASSWORD as a required secret everywhere redis
is used: backend/worker/worker-transcriber(-gpu), redis-exporter,
livekit and egress (via rendered templates). docker compose now
refuses to start without it instead of silently running unauthenticated.
2026-07-25 22:59:34 +03:00
d593add0f3 deploy: bind backend/livekit-signaling/monitoring/llm ports to loopback
Close host-published ports that don't need to be reachable from outside
the docker network: nginx already proxies backend/livekit by service
name, and admin UIs (prometheus/grafana) and llm servers should only be
reachable via SSH tunnel. Only 80/443/7881 + the WebRTC UDP range stay
open to the internet.
2026-07-25 22:58:38 +03:00
6dda717ad8 env.example: warn LIVEKIT_PUBLIC_URL must be wss:// in HTTPS prod
The client receives this value as the LiveKit serverUrl (via join.livekit_url).
A ws:// value on an https page is blocked as mixed content, so conferences
never connect — the exact failure hit on vidconf.ru, where the runtime value
had fallen back to the ws://localhost:7880 default. Spell out the prod
requirement (wss://<domain>/livekit/) next to the placeholder.
2026-07-25 22:31:02 +03:00
93e98f445b .env.example: cover new deploy params, sane default profiles
Добавлены плейсхолдеры для всех переменных, введённых хардненингом деплоя
(NGINX_SERVER_NAMES/NGINX_CERT_NAME, LIVEKIT_USE_EXTERNAL_IP/LIVEKIT_NODE_IP,
TURN_EXTERNAL_IP) — generic-значения (example.com/127.0.0.1/false), реальные
домены/IP боевой инсталляции задаются в .env вручную и install.sh их не
перезапишет.

COMPOSE_PROFILES по умолчанию — media,monitoring (только для ручного
`docker compose up` без install.sh): убирает ресурсоёмкие transcribe/llm
из дефолтного набора, install.sh продолжает выставлять профили по
выбранному пресету инсталлятора независимо от этого дефолта.

Добавлены MEDIA_URL/VITE_API_URL/VITE_LIVEKIT_URL/NEXT_PUBLIC_LIVEKIT_URL —
присутствуют в .env боевого сервера, но не читаются текущим кодом
(задокументировано как есть, для полноты покрытия реальных ключей).
2026-07-25 21:58:12 +03:00
896455381a Первоначальная версия VidConf 2026-07-23 01:57:27 +03:00