From 75e8064044311c2d94f49581d3e30a74627df017 Mon Sep 17 00:00:00 2001 From: Eduardo Neves Date: Thu, 23 May 2024 17:25:55 -0300 Subject: [PATCH] Add chatwoot template --- public/svgs/chatwoot.svg | 15 +++++ templates/compose/chatwoot.yaml | 116 ++++++++++++++++++++++++++++++++ 2 files changed, 131 insertions(+) create mode 100644 public/svgs/chatwoot.svg create mode 100644 templates/compose/chatwoot.yaml diff --git a/public/svgs/chatwoot.svg b/public/svgs/chatwoot.svg new file mode 100644 index 000000000..438f2b4b0 --- /dev/null +++ b/public/svgs/chatwoot.svg @@ -0,0 +1,15 @@ + + + + on_white + Created with Sketch. + + \ No newline at end of file diff --git a/templates/compose/chatwoot.yaml b/templates/compose/chatwoot.yaml new file mode 100644 index 000000000..1879ba661 --- /dev/null +++ b/templates/compose/chatwoot.yaml @@ -0,0 +1,116 @@ +# documentation: https://www.chatwoot.com/docs/self-hosted/ +# slogan: Delightful customer relationships, at scale +# tags: chatwoot,chat,api,open,source,rails,redis,postgresql,sidekiq +# icon: svgs/chatwoot.svg + + +services: + rails: + image: chatwoot/chatwoot:latest + depends_on: + - postgres + - redis + environment: + - SERVICE_FQDN_CHATWOOT_3000 + - RESOURCE_UUID=${RESOURCE_UUID} + - 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-${RESOURCE_UUID}:6379 + - REDIS_PASSWORD=$SERVICE_PASSWORD_REDIS + - REDIS_OPENSSL_VERIFY_MODE=none + - POSTGRES_DATABASE=chatwoot + - POSTGRES_HOST=postgres-${RESOURCE_UUID} + - 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-${RESOURCE_UUID}:6379 + - REDIS_PASSWORD=$SERVICE_PASSWORD_REDIS + - REDIS_OPENSSL_VERIFY_MODE=none + - POSTGRES_DATABASE=chatwoot + - POSTGRES_HOST=postgres-${RESOURCE_UUID} + - 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 \ No newline at end of file