- static getRedisClientOptions () {
- return Object.assign({},
- (CONFIG.REDIS.AUTH && CONFIG.REDIS.AUTH != null) ? { password: CONFIG.REDIS.AUTH } : {},
- (CONFIG.REDIS.DB) ? { db: CONFIG.REDIS.DB } : {},
- (CONFIG.REDIS.HOSTNAME && CONFIG.REDIS.PORT)
- ? { host: CONFIG.REDIS.HOSTNAME, port: CONFIG.REDIS.PORT }
- : { path: CONFIG.REDIS.SOCKET }
- )
+ static getRedisClientOptions (name?: string, options: RedisOptions = {}): RedisOptions {
+ const connectionName = [ 'PeerTube', name ].join('')
+ const connectTimeout = 20000 // Could be slow since node use sync call to compile PeerTube
+
+ if (CONFIG.REDIS.SENTINEL.ENABLED) {
+ return {
+ connectionName,
+ connectTimeout,
+ enableTLSForSentinelMode: CONFIG.REDIS.SENTINEL.ENABLE_TLS,
+ sentinelPassword: CONFIG.REDIS.AUTH,
+ sentinels: CONFIG.REDIS.SENTINEL.SENTINELS,
+ name: CONFIG.REDIS.SENTINEL.MASTER_NAME,
+ ...options
+ }
+ }
+
+ return {
+ connectionName,
+ connectTimeout,
+ password: CONFIG.REDIS.AUTH,
+ db: CONFIG.REDIS.DB,
+ host: CONFIG.REDIS.HOSTNAME,
+ port: CONFIG.REDIS.PORT,
+ path: CONFIG.REDIS.SOCKET,
+ showFriendlyErrorStack: true,
+ ...options
+ }