From 2c61f49de1cf01037fe4a476500df3a9f770f0e8 Mon Sep 17 00:00:00 2001 From: maaz519 Date: Sat, 25 Jul 2026 16:40:41 +0530 Subject: [PATCH] =?UTF-8?q?docs(env):=20document=20REDIS=5FURL=20=E2=80=94?= =?UTF-8?q?=20it=20now=20also=20gates=20cross-replica=20presence?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit REDIS_URL was read by the code but absent from .env.example. Beyond the socket.io fan-out it now selects RedisPresenceService, so leaving it unset in a multi-replica deploy silently degrades the notification presence gate to per-process. Co-Authored-By: Claude Opus 4.8 --- .env.example | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.env.example b/.env.example index fa35fec..5c70a36 100644 --- a/.env.example +++ b/.env.example @@ -7,6 +7,11 @@ JWT_SECRET="dev-only-change-me" # Per-app HS256 secrets, JSON map keyed by appId (the `session` platform port) APP_SECRETS={"portal-demo":"dev-secret"} +# Redis. Unset → single-instance mode: socket.io uses its in-memory adapter (realtime does NOT +# fan out across replicas) and presence is a per-process Map (so the "don't push a thread you're +# viewing" gate only sees sockets on the same replica). REQUIRED for any multi-replica deploy. +REDIS_URL="redis://localhost:6379" + # Full-text message search (Meilisearch). Unset MEILI_URL → search is disabled (no-op). # MEILI_KEY must equal the meilisearch server's MEILI_MASTER_KEY (docker-compose default below). MEILI_URL="http://localhost:7700"