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.
This commit is contained in:
12
install.sh
12
install.sh
@@ -248,7 +248,7 @@ fi
|
||||
ensure_env_file
|
||||
|
||||
if [ "$FRESH_ENV" = "1" ]; then
|
||||
for key in JWT_SECRET POSTGRES_PASSWORD TURN_STATIC_AUTH_SECRET \
|
||||
for key in JWT_SECRET POSTGRES_PASSWORD REDIS_PASSWORD TURN_STATIC_AUTH_SECRET \
|
||||
LIVEKIT_API_SECRET GRAFANA_ADMIN_PASSWORD SEED_ADMIN_PASSWORD; do
|
||||
set_env_var "$key" ""
|
||||
done
|
||||
@@ -264,6 +264,14 @@ ensure_secret POSTGRES_PASSWORD 16
|
||||
# compose), не `localhost` (тот годится только для запуска backend на хосте
|
||||
# вне контейнера, см. docs/deploy/dev-setup.md).
|
||||
set_env_var DATABASE_URL "postgresql+asyncpg://$(get_env_var POSTGRES_USER):$(get_env_var POSTGRES_PASSWORD)@postgres:5432/$(get_env_var POSTGRES_DB)"
|
||||
ensure_secret REDIS_PASSWORD 24
|
||||
# REDIS_URL здесь — только для запуска backend/worker НА ХОСТЕ вне
|
||||
# docker-сети (см. docs/deploy/dev-setup.md): внутри контейнеров
|
||||
# docker-compose.yml всегда подставляет redis://:${REDIS_PASSWORD}@redis:6379/0
|
||||
# сам, независимо от этого значения. Пересобираем на каждом запуске по
|
||||
# тому же принципу, что и DATABASE_URL выше — иначе после регенерации
|
||||
# REDIS_PASSWORD это значение осталось бы со старым паролем.
|
||||
set_env_var REDIS_URL "redis://:$(get_env_var REDIS_PASSWORD)@localhost:6379/0"
|
||||
ensure_secret TURN_STATIC_AUTH_SECRET 24
|
||||
ensure_secret LIVEKIT_API_SECRET 32
|
||||
ensure_secret GRAFANA_ADMIN_PASSWORD 16
|
||||
@@ -372,7 +380,7 @@ for _p in "${_profiles[@]}"; do
|
||||
[ -n "$_p" ] && PROFILE_ARGS+=(--profile "$_p")
|
||||
done
|
||||
|
||||
echo "[install] Рендерю coturn/livekit из шаблонов (deploy/render-templates.sh)"
|
||||
echo "[install] Рендерю coturn/livekit/egress из шаблонов (deploy/render-templates.sh)"
|
||||
"$SCRIPT_DIR/deploy/render-templates.sh"
|
||||
|
||||
echo "[install] docker compose pull (лучше сразу, но необязательный шаг — образы, которых нет в реестре под текущим тегом, пропускаются)"
|
||||
|
||||
Reference in New Issue
Block a user