templates/blueprints/chatwoot/docker-compose.yml
2025-03-16 22:39:00 +01:00

84 lines
2.4 KiB
YAML

version: '3'
x-base-config: &base-config
image: chatwoot/chatwoot:v4.0.3
volumes:
- chatwoot-storage:/app/storage
networks:
- dokploy-network
environment:
- FRONTEND_URL=${FRONTEND_URL}
- SECRET_KEY_BASE=${SECRET_KEY_BASE}
- RAILS_ENV=${RAILS_ENV}
- NODE_ENV=${NODE_ENV}
- INSTALLATION_ENV=${INSTALLATION_ENV}
- RAILS_LOG_TO_STDOUT=${RAILS_LOG_TO_STDOUT}
- LOG_LEVEL=${LOG_LEVEL}
- DEFAULT_LOCALE=${DEFAULT_LOCALE}
- POSTGRES_HOST=${POSTGRES_HOST}
- POSTGRES_PORT=${POSTGRES_PORT}
- POSTGRES_DATABASE=${POSTGRES_DATABASE}
- POSTGRES_USERNAME=${POSTGRES_USERNAME}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- REDIS_URL=${REDIS_URL}
- ENABLE_ACCOUNT_SIGNUP=${ENABLE_ACCOUNT_SIGNUP}
- ACTIVE_STORAGE_SERVICE=${ACTIVE_STORAGE_SERVICE}
labels:
- "traefik.enable=true"
services:
chatwoot-rails:
<<: *base-config
depends_on:
chatwoot-postgres:
condition: service_started
chatwoot-redis:
condition: service_started
entrypoint: docker/entrypoints/rails.sh
command: ['bundle', 'exec', 'sh', '-c', 'rails db:chatwoot_prepare && rails s -p 3000 -b 0.0.0.0']
restart: always
labels:
- "traefik.http.routers.chatwoot-web.rule=Host(`${FRONTEND_URL_HOST}`)"
- "traefik.http.routers.chatwoot-web.entrypoints=websecure"
- "traefik.http.routers.chatwoot-web.tls.certresolver=letsencrypt"
- "traefik.http.services.chatwoot-web-service.loadbalancer.server.port=3000"
chatwoot-sidekiq:
<<: *base-config
depends_on:
chatwoot-postgres:
condition: service_started
chatwoot-redis:
condition: service_started
command: ['bundle', 'exec', 'sidekiq', '-C', 'config/sidekiq.yml']
restart: always
chatwoot-postgres:
image: pgvector/pgvector:pg14
restart: always
volumes:
- chatwoot-postgres-data:/var/lib/postgresql/data
- ./init-vector.sql:/docker-entrypoint-initdb.d/init-vector.sql
environment:
- POSTGRES_DB=${POSTGRES_DATABASE}
- POSTGRES_USER=${POSTGRES_USERNAME}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
networks:
- dokploy-network
chatwoot-redis:
image: redis:alpine
restart: always
volumes:
- chatwoot-redis-data:/data
networks:
- dokploy-network
networks:
dokploy-network:
external: true
volumes:
chatwoot-storage:
chatwoot-postgres-data:
chatwoot-redis-data: