116 lines
3.9 KiB
YAML
116 lines
3.9 KiB
YAML
# documentation: https://www.chatwoot.com/docs/self-hosted/
|
|
# slogan: Delightful customer relationships at scale.
|
|
# tags: chatwoot,chat,api,open,source,rails,redis,postgresql,sidekiq
|
|
# logo: svgs/chatwoot.svg
|
|
# port: 3000
|
|
|
|
services:
|
|
rails:
|
|
image: chatwoot/chatwoot:latest
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
environment:
|
|
- SERVICE_FQDN_CHATWOOT_3000
|
|
- SECRET_KEY_BASE=$SERVICE_PASSWORD_CHATWOOT
|
|
- FRONTEND_URL=${SERVICE_FQDN_CHATWOOT}
|
|
- DEFAULT_LOCALE=${CHATWOOT_DEFAULT_LOCALE}
|
|
- FORCE_SSL=false
|
|
- ENABLE_ACCOUNT_SIGNUP=false
|
|
- REDIS_URL=redis://default@redis:6379
|
|
- REDIS_PASSWORD=$SERVICE_PASSWORD_REDIS
|
|
- REDIS_OPENSSL_VERIFY_MODE=none
|
|
- POSTGRES_DATABASE=chatwoot
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_USERNAME=$SERVICE_USER_POSTGRES_USER
|
|
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
|
|
- RAILS_MAX_THREADS=5
|
|
- NODE_ENV=production
|
|
- RAILS_ENV=production
|
|
- INSTALLATION_ENV=docker
|
|
- MAILER_SENDER_EMAIL=${CHATWOOT_MAILER_SENDER_EMAIL}
|
|
- SMTP_ADDRESS=${CHATWOOT_SMTP_ADDRESS}
|
|
- SMTP_AUTHENTICATION=${CHATWOOT_SMTP_AUTHENTICATION}
|
|
- SMTP_DOMAIN=${CHATWOOT_SMTP_DOMAIN}
|
|
- SMTP_ENABLE_STARTTLS_AUTO=${CHATWOOT_SMTP_ENABLE_STARTTLS_AUTO}
|
|
- SMTP_PORT=${CHATWOOT_SMTP_PORT}
|
|
- SMTP_USERNAME=${CHATWOOT_SMTP_USERNAME}
|
|
- SMTP_PASSWORD=${CHATWOOT_SMTP_PASSWORD}
|
|
- ACTIVE_STORAGE_SERVICE=local
|
|
entrypoint: docker/entrypoints/rails.sh
|
|
command: sh -c "bundle exec rails db:chatwoot_prepare && bundle exec rails s -p 3000 -b 0.0.0.0"
|
|
volumes:
|
|
- rails-data:/app/storage
|
|
healthcheck:
|
|
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:3000"]
|
|
interval: 5s
|
|
timeout: 20s
|
|
retries: 10
|
|
|
|
sidekiq:
|
|
image: chatwoot/chatwoot:latest
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
environment:
|
|
- SECRET_KEY_BASE=$SERVICE_PASSWORD_CHATWOOT
|
|
- FRONTEND_URL=${SERVICE_FQDN_CHATWOOT}
|
|
- DEFAULT_LOCALE=${CHATWOOT_DEFAULT_LOCALE}
|
|
- FORCE_SSL=false
|
|
- ENABLE_ACCOUNT_SIGNUP=false
|
|
- REDIS_URL=redis://default@redis:6379
|
|
- REDIS_PASSWORD=$SERVICE_PASSWORD_REDIS
|
|
- REDIS_OPENSSL_VERIFY_MODE=none
|
|
- POSTGRES_DATABASE=chatwoot
|
|
- POSTGRES_HOST=postgres
|
|
- POSTGRES_USERNAME=$SERVICE_USER_POSTGRES_USER
|
|
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
|
|
- RAILS_MAX_THREADS=5
|
|
- NODE_ENV=production
|
|
- RAILS_ENV=production
|
|
- INSTALLATION_ENV=docker
|
|
- MAILER_SENDER_EMAIL=${CHATWOOT_MAILER_SENDER_EMAIL}
|
|
- SMTP_ADDRESS=${CHATWOOT_SMTP_ADDRESS}
|
|
- SMTP_AUTHENTICATION=${CHATWOOT_SMTP_AUTHENTICATION}
|
|
- SMTP_DOMAIN=${CHATWOOT_SMTP_DOMAIN}
|
|
- SMTP_ENABLE_STARTTLS_AUTO=${CHATWOOT_SMTP_ENABLE_STARTTLS_AUTO}
|
|
- SMTP_PORT=${CHATWOOT_SMTP_PORT}
|
|
- SMTP_USERNAME=${CHATWOOT_SMTP_USERNAME}
|
|
- SMTP_PASSWORD=${CHATWOOT_SMTP_PASSWORD}
|
|
- ACTIVE_STORAGE_SERVICE=local
|
|
command: ['bundle', 'exec', 'sidekiq', '-C', 'config/sidekiq.yml']
|
|
volumes:
|
|
- sidekiq-data:/app/storage
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "bundle exec rails runner 'puts Sidekiq.redis(&:info)' > /dev/null 2>&1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
postgres:
|
|
image: postgres:12
|
|
restart: always
|
|
volumes:
|
|
- postgres-data:/var/lib/postgresql/data
|
|
environment:
|
|
- POSTGRES_DB=chatwoot
|
|
- POSTGRES_USER=$SERVICE_USER_POSTGRES_USER
|
|
- POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U $SERVICE_USER_POSTGRES_USER -d chatwoot -h 127.0.0.1"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|
|
|
|
redis:
|
|
image: redis:alpine
|
|
restart: always
|
|
command: ["sh", "-c", "redis-server --requirepass \"$SERVICE_PASSWORD_REDIS\""]
|
|
volumes:
|
|
- redis-data:/data
|
|
healthcheck:
|
|
test: ["CMD", "redis-cli", "-a", "$SERVICE_PASSWORD_REDIS", "PING"]
|
|
interval: 30s
|
|
timeout: 10s
|
|
retries: 5
|