aboutsummaryrefslogtreecommitdiffhomepage
path: root/server
diff options
context:
space:
mode:
Diffstat (limited to 'server')
-rw-r--r--server/initializers/checker.ts14
-rw-r--r--server/initializers/constants.ts9
-rw-r--r--server/lib/job-queue/job-queue.ts8
-rw-r--r--server/lib/redis.ts16
4 files changed, 31 insertions, 16 deletions
diff --git a/server/initializers/checker.ts b/server/initializers/checker.ts
index d5402098f..52a1aeb50 100644
--- a/server/initializers/checker.ts
+++ b/server/initializers/checker.ts
@@ -44,7 +44,6 @@ function checkMissedConfig () {
44 'webserver.https', 'webserver.hostname', 'webserver.port', 44 'webserver.https', 'webserver.hostname', 'webserver.port',
45 'trust_proxy', 45 'trust_proxy',
46 'database.hostname', 'database.port', 'database.suffix', 'database.username', 'database.password', 46 'database.hostname', 'database.port', 'database.suffix', 'database.username', 'database.password',
47 'redis.hostname', 'redis.port', 'redis.auth', 'redis.db',
48 'smtp.hostname', 'smtp.port', 'smtp.username', 'smtp.password', 'smtp.tls', 'smtp.from_address', 47 'smtp.hostname', 'smtp.port', 'smtp.username', 'smtp.password', 'smtp.tls', 'smtp.from_address',
49 'storage.avatars', 'storage.videos', 'storage.logs', 'storage.previews', 'storage.thumbnails', 'storage.torrents', 'storage.cache', 48 'storage.avatars', 'storage.videos', 'storage.logs', 'storage.previews', 'storage.thumbnails', 'storage.torrents', 'storage.cache',
50 'log.level', 49 'log.level',
@@ -56,6 +55,12 @@ function checkMissedConfig () {
56 'instance.default_nsfw_policy', 'instance.robots', 55 'instance.default_nsfw_policy', 'instance.robots',
57 'services.twitter.username', 'services.twitter.whitelisted' 56 'services.twitter.username', 'services.twitter.whitelisted'
58 ] 57 ]
58 const requiredAlternatives = [
59 [ // set
60 ['redis.hostname', 'redis.port'], // alternative
61 ['redis.socket']
62 ]
63 ]
59 const miss: string[] = [] 64 const miss: string[] = []
60 65
61 for (const key of required) { 66 for (const key of required) {
@@ -64,6 +69,13 @@ function checkMissedConfig () {
64 } 69 }
65 } 70 }
66 71
72 const missingAlternatives = requiredAlternatives.filter(
73 set => !set.find(alternative => !alternative.find(key => !config.has(key)))
74 )
75
76 missingAlternatives
77 .forEach(set => set[0].forEach(key => miss.push(key)))
78
67 return miss 79 return miss
68} 80}
69 81
diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts
index 6173e1298..c5bc886d8 100644
--- a/server/initializers/constants.ts
+++ b/server/initializers/constants.ts
@@ -116,10 +116,11 @@ const CONFIG = {
116 PASSWORD: config.get<string>('database.password') 116 PASSWORD: config.get<string>('database.password')
117 }, 117 },
118 REDIS: { 118 REDIS: {
119 HOSTNAME: config.get<string>('redis.hostname'), 119 HOSTNAME: config.has('redis.hostname') ? config.get<string>('redis.hostname') : null,
120 PORT: config.get<number>('redis.port'), 120 PORT: config.has('redis.port') ? config.get<number>('redis.port') : null,
121 AUTH: config.get<string>('redis.auth'), 121 SOCKET: config.has('redis.socket') ? config.get<string>('redis.socket') : null,
122 DB: config.get<number>('redis.db') 122 AUTH: config.has('redis.auth') ? config.get<string>('redis.auth') : null,
123 DB: config.has('redis.db') ? config.get<number>('redis.db') : null
123 }, 124 },
124 SMTP: { 125 SMTP: {
125 HOSTNAME: config.get<string>('smtp.hostname'), 126 HOSTNAME: config.get<string>('smtp.hostname'),
diff --git a/server/lib/job-queue/job-queue.ts b/server/lib/job-queue/job-queue.ts
index 77aaa7fa8..1b46180e8 100644
--- a/server/lib/job-queue/job-queue.ts
+++ b/server/lib/job-queue/job-queue.ts
@@ -1,6 +1,7 @@
1import * as Bull from 'bull' 1import * as Bull from 'bull'
2import { JobState, JobType } from '../../../shared/models' 2import { JobState, JobType } from '../../../shared/models'
3import { logger } from '../../helpers/logger' 3import { logger } from '../../helpers/logger'
4import { Redis } from '../redis'
4import { CONFIG, JOB_ATTEMPTS, JOB_COMPLETED_LIFETIME, JOB_CONCURRENCY, JOB_REQUEST_TTL } from '../../initializers' 5import { CONFIG, JOB_ATTEMPTS, JOB_COMPLETED_LIFETIME, JOB_CONCURRENCY, JOB_REQUEST_TTL } from '../../initializers'
5import { ActivitypubHttpBroadcastPayload, processActivityPubHttpBroadcast } from './handlers/activitypub-http-broadcast' 6import { ActivitypubHttpBroadcastPayload, processActivityPubHttpBroadcast } from './handlers/activitypub-http-broadcast'
6import { ActivitypubHttpFetcherPayload, processActivityPubHttpFetcher } from './handlers/activitypub-http-fetcher' 7import { ActivitypubHttpFetcherPayload, processActivityPubHttpFetcher } from './handlers/activitypub-http-fetcher'
@@ -63,12 +64,7 @@ class JobQueue {
63 this.jobRedisPrefix = 'bull-' + CONFIG.WEBSERVER.HOST 64 this.jobRedisPrefix = 'bull-' + CONFIG.WEBSERVER.HOST
64 const queueOptions = { 65 const queueOptions = {
65 prefix: this.jobRedisPrefix, 66 prefix: this.jobRedisPrefix,
66 redis: { 67 redis: Redis.getRedisClient()
67 host: CONFIG.REDIS.HOSTNAME,
68 port: CONFIG.REDIS.PORT,
69 auth: CONFIG.REDIS.AUTH,
70 db: CONFIG.REDIS.DB
71 }
72 } 68 }
73 69
74 for (const handlerName of Object.keys(handlers)) { 70 for (const handlerName of Object.keys(handlers)) {
diff --git a/server/lib/redis.ts b/server/lib/redis.ts
index 78b28986a..06a340060 100644
--- a/server/lib/redis.ts
+++ b/server/lib/redis.ts
@@ -24,11 +24,7 @@ class Redis {
24 if (this.initialized === true) return 24 if (this.initialized === true) return
25 this.initialized = true 25 this.initialized = true
26 26
27 this.client = createClient({ 27 this.client = createClient(Redis.getRedisClient())
28 host: CONFIG.REDIS.HOSTNAME,
29 port: CONFIG.REDIS.PORT,
30 db: CONFIG.REDIS.DB
31 })
32 28
33 this.client.on('error', err => { 29 this.client.on('error', err => {
34 logger.error('Error in Redis client.', { err }) 30 logger.error('Error in Redis client.', { err })
@@ -42,6 +38,16 @@ class Redis {
42 this.prefix = 'redis-' + CONFIG.WEBSERVER.HOST + '-' 38 this.prefix = 'redis-' + CONFIG.WEBSERVER.HOST + '-'
43 } 39 }
44 40
41 static getRedisClient () {
42 return Object.assign({},
43 (CONFIG.REDIS.AUTH && CONFIG.REDIS.AUTH != null) ? { password: CONFIG.REDIS.AUTH } : {},
44 (CONFIG.REDIS.DB) ? { db: CONFIG.REDIS.DB } : {},
45 (CONFIG.REDIS.HOSTNAME && CONFIG.REDIS.PORT) ?
46 { host: CONFIG.REDIS.HOSTNAME, port: CONFIG.REDIS.PORT } :
47 { path: CONFIG.REDIS.SOCKET }
48 )
49 }
50
45 async setResetPasswordVerificationString (userId: number) { 51 async setResetPasswordVerificationString (userId: number) {
46 const generatedString = await generateRandomString(32) 52 const generatedString = await generateRandomString(32)
47 53