Merge branch 'hotfix/1.0.3' - Support for authenticated redis connections

This commit is contained in:
sony-mathew 2020-01-26 22:47:00 +05:45
commit 6efa994096
7 changed files with 46 additions and 6 deletions

View file

@ -1,6 +1,12 @@
REDIS_URL=redis://redis:6379
SECRET_KEY_BASE= SECRET_KEY_BASE=
#redis config
REDIS_URL=redis://redis:6379
# If you are using docker-compose, set this variable's value to be any string,
# which will be the password for the redis service running inside the docker-compose
# to make it secure
REDIS_PASSWORD=
# Postgres Database config variables # Postgres Database config variables
POSTGRES_HOST=postgres POSTGRES_HOST=postgres
POSTGRES_USERNAME=postgres POSTGRES_USERNAME=postgres

View file

@ -1,5 +1,7 @@
development: development:
adapter: async adapter: redis
url: <%= ENV.fetch('REDIS_URL', 'redis://127.0.0.1:6379') %>
password: <%= ENV.fetch('REDIS_PASSWORD', nil) %>
test: test:
adapter: test adapter: test
@ -7,7 +9,9 @@ test:
staging: staging:
adapter: redis adapter: redis
url: <%= ENV.fetch('REDIS_URL', 'redis://127.0.0.1:6379') %> url: <%= ENV.fetch('REDIS_URL', 'redis://127.0.0.1:6379') %>
password: <%= ENV.fetch('REDIS_PASSWORD', nil) %>
production: production:
adapter: redis adapter: redis
url: <%= ENV.fetch('REDIS_URL', 'redis://127.0.0.1:6379') %> url: <%= ENV.fetch('REDIS_URL', 'redis://127.0.0.1:6379') %>
password: <%= ENV.fetch('REDIS_PASSWORD', nil) %>

View file

@ -1,5 +1,8 @@
uri = URI.parse(ENV.fetch('REDIS_URL', 'redis://127.0.0.1:6379')) app_redis_config = {
redis = Rails.env.test? ? MockRedis.new : Redis.new(url: uri) url: URI.parse(ENV.fetch('REDIS_URL', 'redis://127.0.0.1:6379')),
password: ENV.fetch('REDIS_PASSWORD', nil)
}
redis = Rails.env.test? ? MockRedis.new : Redis.new(app_redis_config)
Nightfury.redis = Redis::Namespace.new('reports', redis: redis) Nightfury.redis = Redis::Namespace.new('reports', redis: redis)
# Alfred - Used currently for Round Robin. Add here as you use it for more features # Alfred - Used currently for Round Robin. Add here as you use it for more features

View file

@ -0,0 +1,11 @@
sidekiq_redis_config = {
url: ENV.fetch('REDIS_URL', 'redis://127.0.0.1:6379'),
password: ENV.fetch('REDIS_PASSWORD', nil)
}
Sidekiq.configure_client do |config|
config.redis = sidekiq_redis_config
end
Sidekiq.configure_server do |config|
config.redis = sidekiq_redis_config
end

View file

@ -53,7 +53,7 @@ services:
- cache:/app/tmp/cache - cache:/app/tmp/cache
ports: ports:
- "3035" # Webpack dev server - "3035" # Webpack dev server
env_file: .env.example env_file: .env
environment: environment:
- WEBPACKER_DEV_SERVER_HOST=0.0.0.0 - WEBPACKER_DEV_SERVER_HOST=0.0.0.0
- NODE_ENV=development - NODE_ENV=development
@ -76,6 +76,8 @@ services:
redis: redis:
image: redis:alpine image: redis:alpine
restart: always restart: always
command: ["sh", "-c", "redis-server --requirepass \"$REDIS_PASSWORD\""]
env_file: .env
volumes: volumes:
- redis:/data/redis - redis:/data/redis
ports: ports:

View file

@ -7,6 +7,13 @@ title: "Docker Setup and Debugging Guide"
After cloning the repo and installing docker on your machine, run the following command from the root directory of the project. After cloning the repo and installing docker on your machine, run the following command from the root directory of the project.
```bash
cp .env.example .env
```
Make changes to the `.env` file as required [Optional]. If you want to set the password for redis when you run
docker-compose, set any string value to the environment variable `REDIS_PASSWORD` in the `.env` file. which will secure the redis running inside docker-compose with this password. This will be automatically picked up by app server and sidekiq, to authenticate while making connections to redis server.
```bash ```bash
docker-compose build docker-compose build
``` ```

View file

@ -60,7 +60,7 @@ AWS_SECRET_ACCESS_KEY=
AWS_REGION= AWS_REGION=
``` ```
### Configure Redis URL ### Configure Redis
For development, you can use the following url to connect to redis. For development, you can use the following url to connect to redis.
@ -68,6 +68,13 @@ For development, you can use the following url to connect to redis.
REDIS_URL='redis:://127.0.0.1:6379' REDIS_URL='redis:://127.0.0.1:6379'
``` ```
To authenticate redis connections made by app server and sidekiq, if it's protected by a password, use the following
environment variable to set the password.
```bash
REDIS_PASSWORD=
```
### Configure Postgres host ### Configure Postgres host
You can set the following environment variable to set the host for postgres. You can set the following environment variable to set the host for postgres.