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:
11
.env.example
11
.env.example
@@ -5,7 +5,16 @@ POSTGRES_DB=vidconf
|
||||
DATABASE_URL=postgresql+asyncpg://vidconf:vidconf@localhost:5432/vidconf
|
||||
|
||||
# --- Redis ---
|
||||
REDIS_URL=redis://localhost:6379/0
|
||||
# Обязателен (${REDIS_PASSWORD:?} в docker-compose.yml) — redis запускается
|
||||
# с --requirepass, публикация без пароля = открытый redis в интернет (см.
|
||||
# .forcc/deploy/SESSION2-FINDINGS.md — реальный инцидент на этом проекте).
|
||||
# install.sh генерирует случайное значение при первой установке.
|
||||
REDIS_PASSWORD=change-me-redis-secret
|
||||
# REDIS_URL нужен ТОЛЬКО для запуска backend/worker на хосте вне docker-сети
|
||||
# (см. docs/deploy/dev-setup.md) — внутри контейнеров docker-compose.yml
|
||||
# всегда подставляет redis://:${REDIS_PASSWORD}@redis:6379/0 сам, это
|
||||
# значение игнорируя. Держите пароль в этой строке синхронным с REDIS_PASSWORD.
|
||||
REDIS_URL=redis://:change-me-redis-secret@localhost:6379/0
|
||||
|
||||
# --- Seed admin user ---
|
||||
SEED_ADMIN_EMAIL=admin@vidconf.example
|
||||
|
||||
Reference in New Issue
Block a user