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=
#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_HOST=postgres
POSTGRES_USERNAME=postgres

View file

@ -1,5 +1,7 @@
development:
adapter: async
adapter: redis
url: <%= ENV.fetch('REDIS_URL', 'redis://127.0.0.1:6379') %>
password: <%= ENV.fetch('REDIS_PASSWORD', nil) %>
test:
adapter: test
@ -7,7 +9,9 @@ test:
staging:
adapter: redis
url: <%= ENV.fetch('REDIS_URL', 'redis://127.0.0.1:6379') %>
password: <%= ENV.fetch('REDIS_PASSWORD', nil) %>
production:
adapter: redis
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'))
redis = Rails.env.test? ? MockRedis.new : Redis.new(url: uri)
app_redis_config = {
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)
# 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
ports:
- "3035" # Webpack dev server
env_file: .env.example
env_file: .env
environment:
- WEBPACKER_DEV_SERVER_HOST=0.0.0.0
- NODE_ENV=development
@ -76,6 +76,8 @@ services:
redis:
image: redis:alpine
restart: always
command: ["sh", "-c", "redis-server --requirepass \"$REDIS_PASSWORD\""]
env_file: .env
volumes:
- redis:/data/redis
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.
```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
docker-compose build
```

View file

@ -60,7 +60,7 @@ AWS_SECRET_ACCESS_KEY=
AWS_REGION=
```
### Configure Redis URL
### Configure 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'
```
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
You can set the following environment variable to set the host for postgres.