Files
iios/.env.example
T
maaz519 2c61f49de1 docs(env): document REDIS_URL — it now also gates cross-replica presence
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 <noreply@anthropic.com>
2026-07-25 16:43:03 +05:30

36 lines
1.6 KiB
Bash

# iios-service
PORT=3200
DATABASE_URL="postgresql://iios:iios@localhost:5434/iios?schema=public"
# Agent/session signing (reused AppTokenVerifier pattern)
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"
MEILI_KEY="dev-meili-master-key"
# Consumed by docker-compose's meilisearch service; keep in sync with MEILI_KEY.
MEILI_MASTER_KEY="dev-meili-master-key"
# BYO integration credentials at rest (Twilio SMS, SMTP): 32-byte base64 AES-256-GCM key.
# Generate with: openssl rand -base64 32
IIOS_CRED_KEY=""
# Orphaned-media garbage collection (uploaded-but-never-sent attachments).
# Interval 0 = off; set e.g. 3600000 (hourly) in prod. Grace defaults to 24h.
IIOS_MEDIA_GC_INTERVAL_MS=0
# Web Push (VAPID) for offline notifications. Unset VAPID_PUBLIC_KEY → push is disabled
# (subscribe endpoint still stores subs, but WebPushDelivery returns 'failed' — no sends).
# Generate a keypair with: npx web-push generate-vapid-keys
VAPID_PUBLIC_KEY=""
VAPID_PRIVATE_KEY=""
VAPID_SUBJECT="mailto:dev@insignia"