From f553a0d57d24f93c8c7f0ef3dbfdcdba6e7f34f6 Mon Sep 17 00:00:00 2001 From: John Onysko Date: Sun, 24 May 2026 14:20:17 -0400 Subject: [PATCH] feat(config): respect REDIS_DB env var for queue and transmit Allow operators to select a Redis logical database index via the REDIS_DB environment variable. Without this, the BullMQ queue and the @adonisjs/transmit Redis transport both implicitly used db 0, causing key collisions when sharing a Redis instance across multiple services or environments. REDIS_DB is added to the env schema as an optional number; both config/queue.ts and config/transmit.ts fall back to db 0 when unset, preserving existing behavior. --- admin/.env.example | 3 +++ admin/config/queue.ts | 1 + admin/config/transmit.ts | 1 + admin/start/env.ts | 1 + 4 files changed, 6 insertions(+) diff --git a/admin/.env.example b/admin/.env.example index 05a03fd..9ef158d 100644 --- a/admin/.env.example +++ b/admin/.env.example @@ -12,6 +12,9 @@ DB_PASSWORD=password DB_SSL=false REDIS_HOST=localhost REDIS_PORT=6379 +# Optional: Redis logical database index (0-15). Defaults to 0 if unset. +# Set this when sharing a Redis instance across services to avoid key collisions. +# REDIS_DB=0 # Storage path for NOMAD content (ZIM files, maps, etc.) # On Windows dev, use an absolute path like: C:/nomad-storage # On Linux production, use: /opt/project-nomad/storage diff --git a/admin/config/queue.ts b/admin/config/queue.ts index 25053b8..0274563 100644 --- a/admin/config/queue.ts +++ b/admin/config/queue.ts @@ -4,6 +4,7 @@ const queueConfig = { connection: { host: env.get('REDIS_HOST'), port: env.get('REDIS_PORT') ?? 6379, + db: env.get('REDIS_DB') ?? 0, }, } diff --git a/admin/config/transmit.ts b/admin/config/transmit.ts index 43f1d42..40c2936 100644 --- a/admin/config/transmit.ts +++ b/admin/config/transmit.ts @@ -8,6 +8,7 @@ export default defineConfig({ driver: redis({ host: env.get('REDIS_HOST'), port: env.get('REDIS_PORT'), + db: env.get('REDIS_DB') ?? 0, keyPrefix: 'transmit:', }) } diff --git a/admin/start/env.ts b/admin/start/env.ts index 8223fa9..408f7b6 100644 --- a/admin/start/env.ts +++ b/admin/start/env.ts @@ -54,6 +54,7 @@ export default await Env.create(new URL('../', import.meta.url), { */ REDIS_HOST: Env.schema.string({ format: 'host' }), REDIS_PORT: Env.schema.number(), + REDIS_DB: Env.schema.number.optional(), /* |----------------------------------------------------------