From 9ebf8a69387b24dbf1e841a2a95e06adc4ac8970 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joaqu=C3=ADn=20Tri=C3=B1anes?= Date: Fri, 25 Oct 2024 10:46:35 +0200 Subject: [PATCH] Allow redis to use password auth --- .env.example | 9 ++++++--- src/index.ts | 16 +++++++++++++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/.env.example b/.env.example index 8ac0a57..115b92a 100644 --- a/.env.example +++ b/.env.example @@ -3,15 +3,18 @@ DISCORD_TOKEN= # Bot token from: https://discord.com/developers/ # Configuration DEFAULT_PREFIX= # Prefix used to run commands in Discord -DEVELOPMENT= # (true/false) Enables developer mode +DEVELOPMENT= # (true/false) Enables developer mode # Docker POSTGRES_USER=USERNAME POSTGRES_PASSWORD=PASSWORD POSTGRES_DB=DB -# Redis -REDIS_URL= # URL to redis database (if running everything within docker compose, use "redis") +# Redis (if running everything within docker compose, use "redis" for the host and leave the rest empty) +REDIS_HOST= # URL to redis database +REDIS_USER= # redis database user +REDIS_PASSWORD= # redis database password +REDIS_PORT= # redis database port # Database URL (designed for Postgres, but designed on Prisma) DATABASE_URL= # "postgresql://USERNAME:PASSWORD@postgres:5432/DB?schema=ara&sslmode=prefer" diff --git a/src/index.ts b/src/index.ts index af16d15..4b3e00d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -27,6 +27,10 @@ import '@sapphire/plugin-logger/register'; import { PrismaClient } from '@prisma/client'; import { Redis } from 'ioredis'; +const REDIS_PORT = process.env.REDIS_PORT + ? parseInt(process.env.REDIS_PORT) + : undefined; + // Setting up the Sapphire client const client = new SapphireClient({ defaultPrefix: process.env.DEFAULT_PREFIX, @@ -49,7 +53,10 @@ const client = new SapphireClient({ tasks: { bull: { connection: { - host: process.env.REDIS_URL, + host: process.env.REDIS_HOST, + username: process.env.REDIS_USER, + password: process.env.REDIS_PASSWORD, + port: REDIS_PORT, }, }, }, @@ -62,9 +69,12 @@ const main = async () => { client.logger.info('Logging in'); // Create databases - container.database = await new PrismaClient(); + container.database = new PrismaClient(); container.redis = new Redis({ - host: process.env.REDIS_URL, + host: process.env.REDIS_HOST, + username: process.env.REDIS_USER, + password: process.env.REDIS_PASSWORD, + port: REDIS_PORT, db: 1, });