2168f823a5
Previously we did not support authentication for redis anywhere. Also in the docker compose we were exposing redis port 6379 without any authentication. In the app side for the connections that app server (for storing keys as well as for socket connections made using action cable) and Sidekiq were making to redis server did not support authentication. With this commit, we support authentication for redis connections from app side and Sidekiq. This is supported in docker-compose as well. The changes include : * Added support for new env variable REDIS_PASSWORD * This redis password is now supported by action cable connections, Sidekiq connections and app side redis connections * Since Sidekiq did not have an initializer, added an initializer to pass custom config to Sidekiq (for now it's options for redis) * Changes in docker-compose to pickup a password set in .env file to protect the redis server running in docker * Added necessary documentation changes in `docker.md` and `environment-variables.md`
97 lines
2.1 KiB
YAML
97 lines
2.1 KiB
YAML
version: '3'
|
|
|
|
services:
|
|
base: &base
|
|
build:
|
|
context: .
|
|
dockerfile: ./docker/Dockerfile
|
|
args:
|
|
BUNDLE_WITHOUT: ''
|
|
EXECJS_RUNTIME: 'Node'
|
|
RAILS_ENV: 'development'
|
|
RAILS_SERVE_STATIC_FILES: 'false'
|
|
tty: true
|
|
stdin_open: true
|
|
image: chatwoot:development
|
|
|
|
rails:
|
|
<<: *base
|
|
build:
|
|
context: .
|
|
dockerfile: ./docker/dockerfiles/rails.Dockerfile
|
|
image: chatwoot-rails:development
|
|
volumes:
|
|
- ./:/app:delegated
|
|
- node_modules:/app/node_modules
|
|
- packs:/app/public/packs
|
|
- cache:/app/tmp/cache
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
- webpack
|
|
- mailhog
|
|
ports:
|
|
- 3000:3000
|
|
env_file: .env.example
|
|
environment:
|
|
- WEBPACKER_DEV_SERVER_HOST=webpack
|
|
- NODE_ENV=development
|
|
- RAILS_ENV=development
|
|
entrypoint: docker/entrypoints/rails.sh
|
|
command: ["bundle", "exec", "rails", "s", "-p", "3000", "-b", "0.0.0.0"]
|
|
|
|
webpack:
|
|
<<: *base
|
|
build:
|
|
context: .
|
|
dockerfile: ./docker/dockerfiles/webpack.Dockerfile
|
|
image: chatwoot-webpack:development
|
|
volumes:
|
|
- ./:/app:delegated
|
|
- node_modules:/app/node_modules # Node modules shared across containers
|
|
- packs:/app/public/packs
|
|
- cache:/app/tmp/cache
|
|
ports:
|
|
- "3035" # Webpack dev server
|
|
env_file: .env
|
|
environment:
|
|
- WEBPACKER_DEV_SERVER_HOST=0.0.0.0
|
|
- NODE_ENV=development
|
|
- RAILS_ENV=development
|
|
entrypoint: docker/entrypoints/webpack.sh
|
|
command: bin/webpack-dev-server
|
|
|
|
postgres:
|
|
image: postgres:11.6
|
|
restart: always
|
|
ports:
|
|
- '5432:5432'
|
|
volumes:
|
|
- postgres:/data/postgres
|
|
environment:
|
|
- POSTGRES_DB=chatwoot
|
|
- POSTGRES_USER=postgres
|
|
- POSTGRES_PASSWORD=
|
|
|
|
redis:
|
|
image: redis:alpine
|
|
restart: always
|
|
command: ["sh", "-c", "redis-server --requirepass \"$REDIS_PASSWORD\""]
|
|
env_file: .env
|
|
volumes:
|
|
- redis:/data/redis
|
|
ports:
|
|
- '6379:6379'
|
|
|
|
mailhog:
|
|
image: mailhog/mailhog
|
|
ports:
|
|
- 1025:1025
|
|
- 8025:8025
|
|
|
|
volumes:
|
|
postgres:
|
|
redis:
|
|
packs:
|
|
node_modules:
|
|
cache:
|