From eff1206132f1a99958404fa9ac24a7af82da9d1c Mon Sep 17 00:00:00 2001 From: Juan del Peral Date: Thu, 16 Apr 2026 16:44:59 -0300 Subject: [PATCH 1/4] Updated chatwoot blueprint --- blueprints/chatwoot/docker-compose.yml | 68 +++++++++++++++----------- blueprints/chatwoot/template.toml | 11 +++-- 2 files changed, 47 insertions(+), 32 deletions(-) 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/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}" From 79d9fec567e1c6c4cb378abdf14608849e1220fe Mon Sep 17 00:00:00 2001 From: Juan del Peral Date: Thu, 16 Apr 2026 17:47:15 -0300 Subject: [PATCH 2/4] fix(chatwoot): align metadata and HTTPS defaults Update Chatwoot metadata to match the pinned image version and default the template URL/SSL settings for Dokploy TLS deployments. Made-with: Cursor --- blueprints/chatwoot/template.toml | 4 ++-- meta.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/blueprints/chatwoot/template.toml b/blueprints/chatwoot/template.toml index 4c238742..5947211a 100644 --- a/blueprints/chatwoot/template.toml +++ b/blueprints/chatwoot/template.toml @@ -6,9 +6,9 @@ redis_password = "${password}" [config] env = [ - "FRONTEND_URL=http://${main_domain}", + "FRONTEND_URL=https://${main_domain}", "SECRET_KEY_BASE=${secret_key_base}", - "FORCE_SSL=false", + "FORCE_SSL=true", "RAILS_ENV=production", "NODE_ENV=production", "INSTALLATION_ENV=docker", diff --git a/meta.json b/meta.json index 3ae0cb5e..774efe57 100644 --- a/meta.json +++ b/meta.json @@ -1090,7 +1090,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": { From 4fac6db5c3a309fb2ac417598841d3e15dbb0474 Mon Sep 17 00:00:00 2001 From: Juan del Peral Date: Thu, 16 Apr 2026 19:01:33 -0300 Subject: [PATCH 3/4] chore(meta): dedupe and sort meta.json Remove duplicate strapi entry so processed meta matches CI expectations. Made-with: Cursor --- meta.json | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/meta.json b/meta.json index 774efe57..9e42f917 100644 --- a/meta.json +++ b/meta.json @@ -5952,24 +5952,6 @@ "media" ] }, - { - "id": "strapi", - "name": "Strapi", - "version": "v5.33.0", - "description": "Open-source headless CMS to build powerful APIs with built-in content management.", - "logo": "strapi.svg", - "links": { - "github": "https://github.com/strapi/strapi", - "discord": "https://discord.com/invite/strapi", - "docs": "https://docs.strapi.io", - "website": "https://strapi.io" - }, - "tags": [ - "headless", - "cms", - "content-management" - ] - }, { "id": "supabase", "name": "SupaBase", From e6f7ede9a704188a0977d0a0257d79383027a425 Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Wed, 8 Jul 2026 02:16:26 -0600 Subject: [PATCH 4/4] fix: don't force SSL by default so Chatwoot works on http domains FORCE_SSL=true + FRONTEND_URL=https:// made Rails 301-redirect every request to https, which Traefik answered with a sustained 404 because Dokploy-generated template domains are http-only. Default to FORCE_SSL=false and FRONTEND_URL=http://${main_domain} (matching the repo convention); users who terminate TLS can flip these afterwards. Verified on a Dokploy instance: fresh deploy of chatwoot/chatwoot:v4.12.1 migrates and answers HTTP 200 with the onboarding page. Co-Authored-By: Claude Fable 5 --- blueprints/chatwoot/template.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blueprints/chatwoot/template.toml b/blueprints/chatwoot/template.toml index 5947211a..4c238742 100644 --- a/blueprints/chatwoot/template.toml +++ b/blueprints/chatwoot/template.toml @@ -6,9 +6,9 @@ redis_password = "${password}" [config] env = [ - "FRONTEND_URL=https://${main_domain}", + "FRONTEND_URL=http://${main_domain}", "SECRET_KEY_BASE=${secret_key_base}", - "FORCE_SSL=true", + "FORCE_SSL=false", "RAILS_ENV=production", "NODE_ENV=production", "INSTALLATION_ENV=docker",