137 lines
3.8 KiB
YAML
137 lines
3.8 KiB
YAML
version: '3'
|
|
|
|
services:
|
|
rails:
|
|
image: 'ghcr.io/fazer-ai/chatwoot:latest'
|
|
pull_policy: always
|
|
volumes:
|
|
- 'storage:/app/storage'
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
environment:
|
|
- NODE_ENV=production
|
|
- RAILS_ENV=production
|
|
- INSTALLATION_ENV=docker
|
|
- DEFAULT_LOCALE=pt_BR
|
|
- FRONTEND_URL=${FRONTEND_URL}
|
|
- INTERNAL_HOST_URL=${INTERNAL_HOST_URL}
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_PORT=5432
|
|
- POSTGRES_USERNAME=${SERVICE_USER_POSTGRES}
|
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
|
- POSTGRES_DATABASE=${POSTGRES_DB:-chatwoot_production}
|
|
- SECRET_KEY_BASE=${SERVICE_PASSWORD_64_SECRETKEYBASE}
|
|
- REDIS_URL=redis://redis:6379
|
|
- REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS}
|
|
- BAILEYS_PROVIDER_DEFAULT_CLIENT_NAME=${BAILEYS_PROVIDER_DEFAULT_CLIENT_NAME}
|
|
- BAILEYS_PROVIDER_DEFAULT_URL=${BAILEYS_PROVIDER_DEFAULT_URL}
|
|
- BAILEYS_PROVIDER_DEFAULT_API_KEY=${BAILEYS_PROVIDER_DEFAULT_API_KEY}
|
|
- BAILEYS_PROVIDER_USE_INTERNAL_HOST_URL=true
|
|
- MAILER_SENDER_EMAIL=${MAILER_SENDER_EMAIL}
|
|
- RESEND_API_KEY=${RESEND_API_KEY}
|
|
entrypoint: docker/entrypoints/rails.sh
|
|
command:
|
|
- bundle
|
|
- exec
|
|
- rails
|
|
- s
|
|
- '-p'
|
|
- '3000'
|
|
- '-b'
|
|
- 0.0.0.0
|
|
restart: always
|
|
post_start:
|
|
- command:
|
|
- bundle
|
|
- exec
|
|
- rails
|
|
- db:chatwoot_prepare
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- 'wget -qO- http://127.0.0.1:3000/'
|
|
interval: 60s
|
|
timeout: 20s
|
|
retries: 10
|
|
|
|
sidekiq:
|
|
image: 'ghcr.io/fazer-ai/chatwoot:latest'
|
|
pull_policy: always
|
|
volumes:
|
|
- 'storage:/app/storage'
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
environment:
|
|
- NODE_ENV=production
|
|
- RAILS_ENV=production
|
|
- INSTALLATION_ENV=docker
|
|
- DEFAULT_LOCALE=pt_BR
|
|
- FRONTEND_URL=${FRONTEND_URL}
|
|
- INTERNAL_HOST_URL=${INTERNAL_HOST_URL}
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_PORT=5432
|
|
- POSTGRES_USERNAME=${SERVICE_USER_POSTGRES}
|
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
|
- POSTGRES_DATABASE=${POSTGRES_DB:-chatwoot_production}
|
|
- SECRET_KEY_BASE=${SERVICE_PASSWORD_64_SECRETKEYBASE}
|
|
- REDIS_URL=redis://redis:6379
|
|
- REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS}
|
|
- BAILEYS_PROVIDER_DEFAULT_CLIENT_NAME=${BAILEYS_PROVIDER_DEFAULT_CLIENT_NAME}
|
|
- BAILEYS_PROVIDER_DEFAULT_URL=${BAILEYS_PROVIDER_DEFAULT_URL}
|
|
- BAILEYS_PROVIDER_DEFAULT_API_KEY=${BAILEYS_PROVIDER_DEFAULT_API_KEY}
|
|
- BAILEYS_PROVIDER_USE_INTERNAL_HOST_URL=true
|
|
- MAILER_SENDER_EMAIL=${MAILER_SENDER_EMAIL}
|
|
- RESEND_API_KEY=${RESEND_API_KEY}
|
|
command:
|
|
- bundle
|
|
- exec
|
|
- sidekiq
|
|
- '-C'
|
|
- config/sidekiq.yml
|
|
restart: always
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- 'ps aux | grep [s]idekiq'
|
|
interval: 20s
|
|
timeout: 20s
|
|
retries: 10
|
|
|
|
postgres:
|
|
image: 'pgvector/pgvector:pg16'
|
|
restart: always
|
|
volumes:
|
|
- 'postgres:/var/lib/postgresql/data'
|
|
environment:
|
|
- POSTGRES_DB=${POSTGRES_DB:-chatwoot_production}
|
|
- POSTGRES_USER=${SERVICE_USER_POSTGRES}
|
|
- POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRES}
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- 'pg_isready -h localhost -p 5432 -U $${POSTGRES_USER} -d $${POSTGRES_DB}'
|
|
interval: 20s
|
|
timeout: 20s
|
|
retries: 10
|
|
|
|
redis:
|
|
image: 'redis:alpine'
|
|
restart: always
|
|
command:
|
|
- sh
|
|
- '-c'
|
|
- 'redis-server --requirepass "${SERVICE_PASSWORD_REDIS}"'
|
|
volumes:
|
|
- 'redis:/data'
|
|
environment:
|
|
- REDIS_PASSWORD=${SERVICE_PASSWORD_REDIS}
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- 'redis-cli -h localhost -p 6379 -a $${REDIS_PASSWORD} ping'
|
|
interval: 20s
|
|
timeout: 20s
|
|
retries: 10
|