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
Download current production templates
Use Chatwoot's official .env and Compose files. Do not use development defaults for a public service.
Replace credentials and configure storage
Set PostgreSQL, Redis, secret, mail and file-storage values. Keep the application bound privately at first.
Prepare the database
Run Chatwoot's documented preparation command before starting the web service.
docker compose run --rm rails bundle exec rails db:chatwoot_prepareStart and proxy the service
Launch the containers, then place the application behind a correctly configured HTTPS reverse proxy.
docker compose up -dCreate a disposable inbox
Send fake messages, assign them, close conversations and test notification delivery before connecting real channels.
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.