diff --git a/docs/docker.md b/docs/docker.md index 68ea1744..ebc02d82 100644 --- a/docs/docker.md +++ b/docs/docker.md @@ -58,13 +58,13 @@ Pick how you want to store uploaded files and set these config options according - Local filesystem (the default): set `FILE_DIR` to the local path used inside the container for storage (or leave the default) - S3-compatible object store: set `S3_BUCKET`, `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` (and `S3_ENDPOINT` if using something other than AWS) -- Google Cloud Storage: set `GCS_BUCKET` to the name of a GCS bucket (auth should be set up using [Application Default Credentials](https://cloud.google.com/docs/authentication/production#auth-cloud-implicit-nodejs)) +- Google Cloud Storage: set `GCS_BUCKET` to the name of a GCS bucket (auth should be set up using [Application Default Credentials](https://cloud.google.com/docs/authentication/production#auth-cloud-implicit-nodejs)) Redis is used as the metadata database for the backend and is required no matter which storage method you use. | Name | Description | |------------------|-------------| -| `REDIS_HOST`, `REDIS_PORT`, `REDIS_PASSWORD` | Host name, port, and pass of the Redis server (defaults to `localhost`, `6379`, and no password) +| `REDIS_HOST`, `REDIS_PORT`, `REDIS_USER`, `REDIS_PASSWORD`, `REDIS_DB` | Host name, port, and pass of the Redis server (defaults to `localhost`, `6379`, and no password) | `FILE_DIR` | Directory for storage inside the Docker container (defaults to `/uploads`) | `S3_BUCKET` | The S3 bucket name to use (only set if using S3 for storage) | `S3_ENDPOINT` | An optional custom endpoint to use for S3 (defaults to AWS) diff --git a/server/config.js b/server/config.js index 0cab0156..f95c0619 100644 --- a/server/config.js +++ b/server/config.js @@ -89,11 +89,21 @@ const conf = convict({ default: 6379, env: 'REDIS_PORT' }, + redis_user: { + format: String, + default: '', + env: 'REDIS_USER' + }, redis_password: { format: String, default: '', env: 'REDIS_PASSWORD' }, + redis_db: { + format: String, + default: '', + env: 'REDIS_DB' + }, redis_event_expire: { format: Boolean, default: false, diff --git a/server/storage/redis.js b/server/storage/redis.js index 3d74d01f..2a5e48c3 100644 --- a/server/storage/redis.js +++ b/server/storage/redis.js @@ -21,8 +21,12 @@ module.exports = function(config) { return config.redis_retry_delay; } }; + if (config.redis_user != null && config.redis_user.length > 0) + client_config.user = config.redis_user; if (config.redis_password != null && config.redis_password.length > 0) client_config.password = config.redis_password; + if (config.redis_db != null && config.redis_db.length > 0) + client_config.db = config.redis_db; const client = redis.createClient(client_config); client.ttlAsync = promisify(client.ttl);