From 0a2cca3ee47684896c0718bed18b4f2552e226a0 Mon Sep 17 00:00:00 2001 From: Adam Gastineau Date: Sat, 5 Dec 2020 18:54:38 -0800 Subject: [PATCH] Allow disabling Redis usage, for debugging and single user instances --- app.js | 34 +++++++++++++++++++++++----------- config.js.template | 1 + 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/app.js b/app.js index 15911c6..899f1aa 100644 --- a/app.js +++ b/app.js @@ -11,20 +11,32 @@ const express = require('express') const cookieParser = require('cookie-parser') const r = require('redis') -const redisOptions = { - host: '127.0.0.1', - port: 6379 -} -if (config.redis_host) { - redisOptions.host = config.redis_host -} +const redis = (() => { + if (!config.redis_enabled) { + // Stub Redis if disabled + return { + get: (_, callback) => callback(null, null), + setex: (_, _1, _2, callback) => callback(null), + on: () => {} + } + } -if (config.redis_port && config.redis_port > 0) { - redisOptions.port = config.redis_port -} + const redisOptions = { + host: '127.0.0.1', + port: 6379 + } + + if (config.redis_host) { + redisOptions.host = config.redis_host + } + + if (config.redis_port && config.redis_port > 0) { + redisOptions.port = config.redis_port + } -const redis = r.createClient(redisOptions) + return r.createClient(redisOptions) +})() const helmet = require('helmet') const bodyParser = require('body-parser') const fetch = require('node-fetch') diff --git a/config.js.template b/config.js.template index b034e4a..4c0e8df 100644 --- a/config.js.template +++ b/config.js.template @@ -3,6 +3,7 @@ const config = { reddit_app_id: 'H6-HjZ5pUPjaFQ', // You should obtain your own Reddit app ID. For testing purposes it's okay to use this project's default app ID. Create your Reddit app here: https://old.reddit.com/prefs/apps/. Make sure to create an "installed app" type of app. cert_dir: '', // For example '/home/teddit/letsencrypt/live/teddit.net', if you are using https. No trailing slash. video_enabled: true, + redis_enabled: true, // If disabled, does not cache Reddit API calls redis_host: '127.0.0.1', redis_port: 6379, ssl_port: 8088,