Merge pull request 'Add config option to disable Redis usage' (#45) from agg23/teddit:agg23/DisableRedis into main

Reviewed-on: https://codeberg.org/teddit/teddit/pulls/45
This commit is contained in:
teddit 2020-12-06 11:36:58 +01:00
commit 3f3ea32b63
2 changed files with 24 additions and 11 deletions

26
app.js
View File

@ -11,20 +11,32 @@ const express = require('express')
const cookieParser = require('cookie-parser') const cookieParser = require('cookie-parser')
const r = require('redis') const r = require('redis')
const redisOptions = {
const redis = (() => {
if (!config.redis_enabled) {
// Stub Redis if disabled
return {
get: (_, callback) => callback(null, null),
setex: (_, _1, _2, callback) => callback(null),
on: () => {}
}
}
const redisOptions = {
host: '127.0.0.1', host: '127.0.0.1',
port: 6379 port: 6379
} }
if (config.redis_host) { if (config.redis_host) {
redisOptions.host = config.redis_host redisOptions.host = config.redis_host
} }
if (config.redis_port && config.redis_port > 0) { if (config.redis_port && config.redis_port > 0) {
redisOptions.port = config.redis_port redisOptions.port = config.redis_port
} }
const redis = r.createClient(redisOptions) return r.createClient(redisOptions)
})()
const helmet = require('helmet') const helmet = require('helmet')
const bodyParser = require('body-parser') const bodyParser = require('body-parser')
const fetch = require('node-fetch') const fetch = require('node-fetch')

View File

@ -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. 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. cert_dir: '', // For example '/home/teddit/letsencrypt/live/teddit.net', if you are using https. No trailing slash.
video_enabled: true, video_enabled: true,
redis_enabled: true, // If disabled, does not cache Reddit API calls
redis_host: '127.0.0.1', redis_host: '127.0.0.1',
redis_port: 6379, redis_port: 6379,
ssl_port: 8088, ssl_port: 8088,