App Store template
Chatwoot icon

Chatwoot

Open-source customer support platform with live chat, shared inboxes, contacts, automation, and omnichannel integrations.

Launch in your Sealos workspace.

Chatwoot template preview
Template previewFull screenshot
Template deployments
11 on Sealos
Deployment
Your own instance
Category
Tools

About this template

Overview

Chatwoot is an open-source customer support platform for live chat, shared inboxes, contacts, automation, and omnichannel conversations. This template deploys Chatwoot with managed PostgreSQL and Redis, a background worker, HTTPS ingress, and a choice of persistent local attachment storage or private Sealos S3-compatible object storage.

From the documentation

The Rails server, Sidekiq worker, PostgreSQL, and Redis are all required by Chatwoot's production architecture. Email delivery uses an external SMTP or transactional email provider configured through Chatwoot environment variables.

How to deploy Chatwoot

  1. Choose Deploy now to start Chatwoot in your Sealos workspace.
  2. Review enable_account_signup, enable_s3_storage in the deployment form.
  3. Launch the template, then inspect the application status and resource cards in Canvas.

Resources to plan for

Start with the resources defined by the Chatwoot template. Review CPU, memory, persistent storage, and network allocations for every service in Canvas. Capacity needs depend on your data and workload; monitor usage as they grow.

Template configuration and setup

Access after deployment

Use the application URL or connection details shown in Canvas. Follow the deployment guide for first-time account setup or client configuration, and keep generated credentials available for that step.

Hosting and billing

Sealos monthly plans include compute, memory, storage, and traffic. Size your plan for all deployed services. Software licenses and external AI or API services may have separate terms and charges. Confirm the applicable plan and optional charges in Cost Center.

Compare Sealos resource plans
Read full documentationCollapse documentation

For current cloud charges, refer to Sealos plan pricing. Upstream documentation may reference earlier billing models.

Deploy Chatwoot on Sealos

Chatwoot is an open-source customer support platform for live chat, shared inboxes, contacts, automation, and omnichannel conversations. This template deploys Chatwoot with managed PostgreSQL and Redis, a background worker, HTTPS ingress, and a choice of persistent local attachment storage or private Sealos S3-compatible object storage.

Chatwoot conversation with an S3-backed attachment

What This Template Deploys

  • Chatwoot v4.16.2 Web running the Rails application on port 3000
  • Chatwoot v4.16.2 Sidekiq for background jobs
  • PostgreSQL 16.4.0 with pgvector through KubeBlocks
  • Redis 7.2.7 with Sentinel through KubeBlocks
  • Database initialization and migration Jobs using db:chatwoot_prepare
  • Persistent local storage for attachments by default
  • Private Sealos S3-compatible object storage as an optional attachment backend
  • Public HTTPS through a Sealos-managed Service and Ingress
  • Startup, readiness, and liveness probes on /health and /api

The Rails server, Sidekiq worker, PostgreSQL, and Redis are all required by Chatwoot's production architecture. Email delivery uses an external SMTP or transactional email provider configured through Chatwoot environment variables.

Common Use Cases

  • Website live chat and customer support
  • Shared inboxes for support, sales, and operations teams
  • API-driven customer conversations
  • Contact and conversation management
  • Email, messaging, and social channel integrations
  • Support automation, reports, and help centers

Deployment

  1. Open the Chatwoot template in the Sealos App Store.
  2. Keep Enable account signup enabled for the first deployment.
  3. Choose local attachment storage or enable private Sealos S3 storage.
  4. Click Deploy and wait for the Web and Sidekiq workloads to become ready. PostgreSQL and Redis provisioning usually takes several minutes on the first deployment.
  5. Open the HTTPS address shown by Sealos.
Deployment Parameters
ParameterDefaultDescription
enable_account_signuptrueEnables the first-admin setup and account registration flow
enable_s3_storagefalseCreates a private Sealos object-storage bucket for attachments

The template generates SECRET_KEY_BASE automatically and reads database, Redis, and object-storage credentials from Sealos-managed Kubernetes Secrets.

First Administrator and Login

The template contains zero preset user credentials. Create the first administrator from the Chatwoot setup screen:

  1. Open the deployed URL.
  2. Enter your Name, Company Name, Work Email, and a strong Password.
  3. Click Finish Setup.
  4. Complete the profile onboarding fields such as role, website, language, timezone, industry, and company size.
  5. When Chatwoot presents the sign-in page, use the same work email and password.

After the required accounts exist, set enable_account_signup to false in the deployment configuration to close public account registration. Existing users and invited agents continue signing in with their stored credentials.

Password reset, agent invitations, and email-channel delivery require a working mail provider. Configure the relevant SMTP or transactional email environment variables in Sealos Canvas before relying on these email flows.

Verify the Installation

After signing in:

  1. Open Settings → Inboxes → Add Inbox.
  2. Choose a channel such as Website or API.
  3. Name the inbox and add an agent.
  4. Start a test conversation.
  5. Send a reply and upload an attachment.

The public endpoint also exposes two useful checks:

  • /health returns {"status":"woot"} when the Rails process is healthy.
  • /api returns Chatwoot version and dependency status.

Attachment Storage

Local Persistent Storage

With enable_s3_storage=false, attachments use a shared 1Gi persistent volume mounted at /app/storage by the Web and Sidekiq Pods. The template places both Pods on the same worker node so the ReadWriteOnce volume remains available to both processes.

Local mode fits evaluations and small single-replica deployments. Include the Chatwoot storage volume in the backup plan together with PostgreSQL.

Private Sealos S3 Storage

With enable_s3_storage=true, the template creates a private ObjectStorageBucket and configures Chatwoot's official s3_compatible Active Storage service. Sealos injects the bucket, endpoint, access key, and secret key from managed Secrets. Web and Sidekiq share the same object backend, and the application workloads require no attachment PVC.

Direct anonymous object requests receive 403. Users download attachments through Chatwoot, where the application issues an authorized object-storage request.

Sealos S3 is the recommended option for durable attachment storage, independent backups, and future application scaling.

Persistence

Path or servicePurposeProvisioned when
PostgreSQL volumeAccounts, inboxes, contacts, conversations, settings, and attachment metadataAlways
Redis volumesQueues, cache, and runtime coordinationAlways
/app/storageLocal Active Storage attachmentsenable_s3_storage=false
Private Sealos bucketS3-compatible Active Storage attachmentsenable_s3_storage=true

Back up PostgreSQL and the selected attachment backend together. Restoring only one side can leave attachment metadata without files or files without matching records.

Resource Defaults

The application limits come from cold-start and representative workflow tests that covered administrator setup, inbox creation, a conversation, agent replies, and attachment upload/download:

ComponentCPU limitMemory limitCPU requestMemory request
Chatwoot Web100m1024Mi10m102Mi
Chatwoot Sidekiq100m1024Mi10m102Mi
Migration Job100m512Mi10m51Mi
PostgreSQL500m512Mi50m51Mi
Redis500m512Mi50m51Mi
Redis Sentinel500m512Mi50m51Mi
Gate and PostgreSQL initialization containers100m128Mi10m12Mi

Increase Web and Sidekiq CPU for concurrent traffic, channel integrations, automations, bulk operations, and large teams. Watch PostgreSQL, Redis, queue latency, and object-storage traffic as usage grows.

Scaling

The template starts one Web replica and one Sidekiq replica. A scaled deployment should use Sealos S3, keep all replicas on the same PostgreSQL and Redis services, preserve the same SECRET_KEY_BASE, and size workers for queue volume. PostgreSQL and Redis topology changes deserve their own backup and failover plan.

Upgrades

Chatwoot upgrades can include database migrations. Before changing the image tag:

  1. Back up PostgreSQL and attachment storage.
  2. Review the target Chatwoot release notes.
  3. Update both Web and Sidekiq to the same image tag.
  4. Run bundle exec rails db:chatwoot_prepare.
  5. Verify /health, /api, sign-in, conversations, background jobs, and attachments.

Deployments created from the earlier v4.7.0 template use different immutable StatefulSet storage definitions. Upgrade those installations with a side-by-side migration: back up PostgreSQL and both attachment PVCs, deploy this template under a new application name, move the database and attachments, validate the new deployment, then switch traffic. Select local storage or Sealos S3 during the new deployment; changing that storage mode also requires a data migration.

Troubleshooting

The application is still starting

Open the Web, Sidekiq, PostgreSQL, Redis, and migration resource cards in Sealos Canvas. The gate containers wait for the schema and Redis before Chatwoot starts. A first database provision can take several minutes.

The first account setup page is unavailable

Deploy with enable_account_signup=true, then open the public Chatwoot URL again. Keep the work email and password created on that page for subsequent sign-in.

Invitations or password reset emails do not arrive

Configure Chatwoot's mailer environment variables for an SMTP or transactional email service and restart Web and Sidekiq.

An S3 object URL returns 403

The bucket policy is private. Open the attachment from an authenticated Chatwoot conversation so the application can authorize the download.

Background actions remain pending

Check Sidekiq readiness and logs, Redis health, and queue latency. Web requests can remain healthy while asynchronous jobs wait for the worker.

Documentation

License

Chatwoot Community Edition is available under the MIT License. Review Chatwoot's repository and product terms for features distributed with other licensing conditions. This repository provides the Sealos deployment template and leaves the Chatwoot license unchanged.

From launch to everyday operations

Why deploy
on Sealos

A shorter path from an app you want to an app you can run. Sealos brings deployment and ongoing operations into one place.

  1. One-click deployment

    Start with a ready-made template. Review its configuration and launch from the Sealos console.

  2. Managed Kubernetes

    Run on managed infrastructure with built-in workload scheduling and recovery.

  3. Automatic HTTPS

    Give your application a public HTTPS endpoint with certificates managed for you.

  4. Persistent storage

    Keep application data on persistent volumes across container restarts.

  5. Room to grow

    Adjust CPU, memory, and replicas from the console as your workload changes.

One template. Connected resources.

You Get the Whole Stack

Sealos provisions the resources defined by your template and brings them together in your workspace.

  • App Service

    Container workloads with configurable CPU, memory, and replicas.

  • Public HTTPS URL

    An address for your app, with managed TLS certificates.

  • Database

    A database provisioned alongside your app when the template calls for one.

  • Persistent Volume

    Storage for the files and data your application needs to keep.

  • Environment Variables

    Application settings and secrets configured in one place.

  • Logs & Metrics

    Inspect container logs and resource usage from the console.

Resources and their configuration vary by template. Review the deployment form for this app’s exact setup.

Explore more production-ready templates.

More