All guides

Setup guide NS/G14

How to self-host Chatwoot

Deploy a test Chatwoot inbox with Docker before trusting it with real customer conversations.

Chatwoot is the project behind this setup. Customer support is production infrastructure. The first test should use a private inbox and fake conversations, not a live business channel.

Recommended method
Production Docker Compose stack
Difficulty
Advanced
Typical time
60–120 minutes

What you need

  • A Linux server with current Docker
  • PostgreSQL and Redis through the documented stack or managed equivalents
  • A domain and HTTPS
  • SMTP and channel credentials only after the private test

Set it up

  1. Download current production templates

    Use Chatwoot's official .env and Compose files. Do not use development defaults for a public service.

  2. Replace credentials and configure storage

    Set PostgreSQL, Redis, secret, mail and file-storage values. Keep the application bound privately at first.

  3. Prepare the database

    Run Chatwoot's documented preparation command before starting the web service.

    docker compose run --rm rails bundle exec rails db:chatwoot_prepare
  4. Start and proxy the service

    Launch the containers, then place the application behind a correctly configured HTTPS reverse proxy.

    docker compose up -d
  5. Create a disposable inbox

    Send fake messages, assign them, close conversations and test notification delivery before connecting real channels.

Advertisement

Reserved for launch

Verify it works

Do not call the setup finished until these small tests pass:

  • The API health check succeeds
  • WebSocket updates appear without refresh
  • A test email or web chat reaches the inbox
  • Database and uploaded files restore together

Protect the service

  • Never expose the unconfigured registration screen
  • Use MFA for administrator accounts
  • Keep channel tokens and customer data encrypted in backups
  • Plan monitoring, updates and incident response before launch

Official resources

Videos are supplemental. Use the official documentation for current commands, versions and security guidance.

Related NoSub article10 GitHub repos that replace subscriptions
Next guideHow to set up Coolify