diff --git a/blueprints/chatwoot/docker-compose.yml b/blueprints/chatwoot/docker-compose.yml index a43b43f7..a5604573 100644 --- a/blueprints/chatwoot/docker-compose.yml +++ b/blueprints/chatwoot/docker-compose.yml @@ -1,63 +1,75 @@ -version: '3' +version: "3.8" -x-base-config: &base-config - image: chatwoot/chatwoot:v4.0.3 +x-chatwoot-base: &chatwoot-base + image: chatwoot/chatwoot:v4.12.1 + restart: unless-stopped volumes: - chatwoot-storage:/app/storage environment: - FRONTEND_URL=${FRONTEND_URL} - SECRET_KEY_BASE=${SECRET_KEY_BASE} + - FORCE_SSL=${FORCE_SSL} + - DEFAULT_LOCALE=${DEFAULT_LOCALE} + - ACTIVE_STORAGE_SERVICE=${ACTIVE_STORAGE_SERVICE} + - ENABLE_ACCOUNT_SIGNUP=${ENABLE_ACCOUNT_SIGNUP} - 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} + - REDIS_PASSWORD=${REDIS_PASSWORD} services: - chatwoot-rails: - <<: *base-config + chatwoot: + <<: *chatwoot-base depends_on: - chatwoot-postgres: - condition: service_started - chatwoot-redis: - condition: service_started + - postgres + - redis 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 + command: + - sh + - -c + - bundle exec rails db:chatwoot_prepare && bundle exec rails s -p 3000 -b 0.0.0.0 + expose: + - "3000" - chatwoot-sidekiq: - <<: *base-config + chatwoot-worker: + <<: *chatwoot-base depends_on: - chatwoot-postgres: - condition: service_started - chatwoot-redis: - condition: service_started - command: ['bundle', 'exec', 'sidekiq', '-C', 'config/sidekiq.yml'] - restart: always + - postgres + - redis + command: + - bundle + - exec + - sidekiq + - -C + - config/sidekiq.yml - chatwoot-postgres: - image: pgvector/pgvector:pg14 - restart: always + postgres: + image: pgvector/pgvector:pg16 + restart: unless-stopped 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} - chatwoot-redis: + redis: image: redis:alpine - restart: always + restart: unless-stopped + command: + - sh + - -c + - redis-server --requirepass "$$REDIS_PASSWORD" + environment: + - REDIS_PASSWORD=${REDIS_PASSWORD} volumes: - chatwoot-redis-data:/data diff --git a/blueprints/chatwoot/meta.json b/blueprints/chatwoot/meta.json index 05814823..0bd26806 100644 --- a/blueprints/chatwoot/meta.json +++ b/blueprints/chatwoot/meta.json @@ -1,7 +1,7 @@ { "id": "chatwoot", "name": "Chatwoot", - "version": "v3.14.1", + "version": "v4.12.1", "description": "Open-source customer engagement platform that provides a shared inbox for teams, live chat, and omnichannel support.", "logo": "chatwoot.svg", "links": { diff --git a/blueprints/chatwoot/template.toml b/blueprints/chatwoot/template.toml index 1e5cec56..4c238742 100644 --- a/blueprints/chatwoot/template.toml +++ b/blueprints/chatwoot/template.toml @@ -1,30 +1,33 @@ [variables] main_domain = "${domain}" -secret_key_base = "${base64:64}" +secret_key_base = "${hash:64}" postgres_password = "${password}" +redis_password = "${password}" [config] env = [ "FRONTEND_URL=http://${main_domain}", "SECRET_KEY_BASE=${secret_key_base}", + "FORCE_SSL=false", "RAILS_ENV=production", "NODE_ENV=production", "INSTALLATION_ENV=docker", "RAILS_LOG_TO_STDOUT=true", "LOG_LEVEL=info", "DEFAULT_LOCALE=en", - "POSTGRES_HOST=chatwoot-postgres", + "POSTGRES_HOST=postgres", "POSTGRES_PORT=5432", "POSTGRES_DATABASE=chatwoot", "POSTGRES_USERNAME=postgres", "POSTGRES_PASSWORD=${postgres_password}", - "REDIS_URL=redis://chatwoot-redis:6379", + "REDIS_URL=redis://:${redis_password}@redis:6379", + "REDIS_PASSWORD=${redis_password}", "ENABLE_ACCOUNT_SIGNUP=false", "ACTIVE_STORAGE_SERVICE=local", ] mounts = [] [[config.domains]] -serviceName = "chatwoot-rails" +serviceName = "chatwoot" port = 3_000 host = "${main_domain}"