Merge branch 'hotfix/1.0.3' - Support for authenticated redis connections
This commit is contained in:
commit
6efa994096
7 changed files with 46 additions and 6 deletions
|
@ -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
|
||||||
|
|
|
@ -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) %>
|
||||||
|
|
|
@ -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
|
||||||
|
|
11
config/initializers/sidekiq.rb
Normal file
11
config/initializers/sidekiq.rb
Normal 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
|
|
@ -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:
|
||||||
|
|
|
@ -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
|
||||||
```
|
```
|
||||||
|
|
|
@ -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.
|
||||||
|
|
Loading…
Reference in a new issue