125 lines
3.3 KiB
YAML
125 lines
3.3 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
|
|
- FRONTEND_URL=${FRONTEND_URL}
|
|
- FRONTEND_URL_EXTERNAL=${FRONTEND_URL_EXTERNAL}
|
|
- REDIS_URL=redis://redis:6379
|
|
- DATABASE_URL=postgresql://postgres:postgres@postgres:5432/chatwoot_production
|
|
- SECRET_KEY_BASE=${SECRET_KEY_BASE}
|
|
- REDIS_PASSWORD=${REDIS_PASSWORD}
|
|
- 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}
|
|
- 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
|
|
- FRONTEND_URL=${FRONTEND_URL}
|
|
- FRONTEND_URL_EXTERNAL=${FRONTEND_URL_EXTERNAL}
|
|
- REDIS_URL=redis://redis:6379
|
|
- DATABASE_URL=postgresql://postgres:postgres@postgres:5432/chatwoot_production
|
|
- SECRET_KEY_BASE=${SECRET_KEY_BASE}
|
|
- REDIS_PASSWORD=${REDIS_PASSWORD}
|
|
- 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}
|
|
- 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=chatwoot_production
|
|
- POSTGRES_USERNAME=postgres
|
|
- POSTGRES_PASSWORD=postgres
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- 'pg_isready -h localhost -p 5432 -U postgres'
|
|
interval: 20s
|
|
timeout: 20s
|
|
retries: 10
|
|
|
|
redis:
|
|
image: 'redis:alpine'
|
|
restart: always
|
|
command:
|
|
- sh
|
|
- '-c'
|
|
- 'redis-server --requirepass "$REDIS_PASSWORD"'
|
|
volumes:
|
|
- 'redis:/data'
|
|
environment:
|
|
- REDIS_PASSWORD=${REDIS_PASSWORD}
|
|
healthcheck:
|
|
test:
|
|
- CMD-SHELL
|
|
- 'redis-cli -h localhost -p 6379 -a $REDIS_PASSWORD ping'
|
|
interval: 20s
|
|
timeout: 20s
|
|
retries: 10
|