Docker image
Chatwoot in Docker. Support inbox, your server.
Chatwoot is the open source customer engagement platform: live chat for your website plus a shared inbox for email, WhatsApp and social channels, the self-hosted answer to Zendesk and Intercom.
Prefer not to run it yourself? Managed Chatwoot from $13.33/mo
# Chatwoot in Docker, base pinned by digest docker pull ghcr.io/remarkablecloud/chatwoot:4.17.1-r1 docker compose up -d
- Current build
4.17.1-r1, updated Sep 11, 2026- Base
- Chatwoot official, digest-pinned
- What's inside
- Live chat + shared inbox, pgvector Postgres and Redis wired, generated super admin, signup closed
- Upstream license
- Chatwoot: MIT (with a separately licensed
enterprise/directory, not enabled in this image).
The image
What our image adds.
What changes from upstream Chatwoot, and why it matters in production.
Generated super admin on first boot
The account exists before the port opens; the credentials are printed once to the container log and never baked into the image.
Self-registration disabled by default
A support tool should not be an open signup page; agents get invited by the admin.
pgvector-ready database
The stack ships PostgreSQL 16 with pgvector, so Chatwoot's AI features have the vector store they expect from day one.
One container, both processes
Web and worker (Sidekiq) run together under one supervisor, sized for single-server deployments; no second container to babysit.
Proxy-aware
FRONTEND_URL drives every generated link; TLS terminates at your reverse proxy.
Run it yourself, or not
Same image either way.
Pull it and run it anywhere, or let us run Chatwoot for you on a managed server with updates, monitoring and snapshots.
Run Chatwoot yourself
- Pull it from GHCR and run it on any Docker host
- The guide below: compose, environment, backups, upgrades
- You patch, back up and watch it
Chatwoot on a managed server
- Installed for you from this same image, $0 for the app
- Updates with a snapshot first, monitoring and a managed firewall
- A 4 GB server from $13.33/mo billed annually, with room for more apps
The guide
Run it in production.
Compose file, environment reference, hardening, backups and upgrades, written by the people who build the image.
On this page
Architecture at a glance
Three containers: chatwoot (Rails web + Sidekiq worker), postgres (pgvector/pg16), redis (7, password-protected). Chatwoot listens on 3000 inside the network; the compose maps it to a host port for your proxy. State lives in PostgreSQL and Redis plus a storage volume for uploads.
Docker Compose walkthrough
The compose in the repository is the reference. The essentials: set DB_PASSWORD, REDIS_PASSWORD and SITE_URL in your .env, keep the Postgres and Redis services on the internal network only, and front the mapped port with your TLS proxy. First boot runs the database preparation and prints the super admin credentials in the chatwoot container log; store them, then log in and invite your agents.
Environment variable reference
| Variable | Purpose |
|---|---|
| POSTGRES_HOST / POSTGRES_USERNAME / POSTGRES_PASSWORD | Database connection |
| REDIS_URL / REDIS_PASSWORD | Redis connection (sessions, Sidekiq, cache) |
| FRONTEND_URL | Public https URL; drives links in emails and the widget |
| SMTP settings | Outbound mail for agent invites and notifications; configure before inviting anyone |
Hardening notes
Registration stays closed unless you deliberately open it. The super admin password is generated per install, never a default. Keep 3000 unpublished except through your proxy, and give Redis its password even on the internal network; Sidekiq jobs are not something a neighbor container should be able to enqueue.
Backups
Two things hold the state: the PostgreSQL database and the storage volume (attachments, avatars). Dump the database with pg_dump on schedule and back the volume as files; restoring both restores every conversation.
Upgrades
New image tags follow upstream releases. Pull the new tag, recreate the container, and migrations run on boot. Check the changelog entry before jumping multiple majors.
Changelog
Each build is pinned by digest and recorded here, so you can see what changed before you pull a new tag.
-
4.17.1-r1Current Sep 11, 2026
Chatwoot and other product names are trademarks of their respective owners. RemarkableCloud is not affiliated with or endorsed by them.
FAQ
Chatwoot in Docker, answered.
Short answers from the people who build and run this image.
Is this the full Chatwoot?
It is Chatwoot's MIT-licensed community code; the separately licensed enterprise directory is not enabled in this image.
Can I connect WhatsApp and social channels?
Yes, through Chatwoot's channel integrations; each provider needs its own API credentials configured in the dashboard.
Why don't I see a signup page?
By design. The generated super admin invites agents; open registration on a support tool is an attack surface, not a feature.
Where are the admin credentials?
Printed once in the chatwoot container log on first boot. Read them with docker logs, store them in your password manager, then rotate the password in the profile.
Pull it, or let us run it.
The same image runs Chatwoot on our managed servers, updates and monitoring included.