Skip to content
Project guidePublic repo reviewed

Self-host Chatwoot with Docker for a website support inbox

A working Chatwoot inbox that receives and assigns test messages from a website.

Use caseClassify support messages, route reviews, and hand off tickets

Source · ChatwootBeginner12 min

Follow the official Docker guide to start Chatwoot and add a website inbox with assignment. It suits website chat and email workflows; it does not include native WeChat integration.

Source · Chatwoot · Open-source walkthrough

Website questions land in different places, so handoffs can lose context. Chatwoot puts connected conversations in a team inbox; start with a test site and verify sending, receiving and assignment. It has no built-in WeChat channel; if you need WeChat, build and test a custom connection using the official API channel guide.

  • Use a separate Linux test VM with Docker Compose. Chatwoot needs the app, PostgreSQL and Redis; size the host from current official requirements.
  • Code outside Chatwoot’s enterprise/ directory is MIT-licensed; enterprise/ has a separate license. Before commercial use, check which part provides each feature you enable and review its terms.

Source: the conversation inbox screenshot in Chatwoot’s official getting-started guide. The account and messages are demo data.

Source: the conversation inbox screenshot in Chatwoot’s official getting-started guide. The account and messages are demo data.

1. Prepare the Docker files from the official guide

Section titled “1. Prepare the Docker files from the official guide”

Get the .env.example and production compose file from the Chatwoot repository. Replace the sample database and Redis passwords and generate a unique SECRET_KEY_BASE. Keep .env private.

2. Prepare the database and start services

Section titled “2. Prepare the database and start services”

Run the documented db:chatwoot_prepare command, then docker compose up -d. Check the Rails API locally before adding a reverse proxy and HTTPS.

Create a Website inbox in the admin area and add its widget snippet to a test page. Submit a fictional question and confirm it appears and can be assigned to a test agent.

Reply as an agent, then send another message from the visitor page. Check conversation state and assignment. Confirm the app, Postgres and Redis can be backed up and restored before using real traffic.

A working Chatwoot inbox that receives and assigns test messages from a website.

  • A test visitor message arrives in the intended inbox.
  • Agents can see assignment and conversation status.
  • HTTPS, strong secrets and Postgres/Redis backups are configured.