RemarkableCloud

Apps / Docker Images

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.

docker pull ghcr.io/remarkablecloud/chatwoot

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).

Free to pull and run anywhere. Digest-pinned, updated deliberately; each build is recorded in the changelog.

The image

What our image adds.

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.

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.

Rather skip the compose file? Deploy Chatwoot with one click on your own VPS: TLS, domain and database already wired.

Deploy Chatwoot in one click

The guide

Run it in production.

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

VariablePurpose
POSTGRES_HOST / POSTGRES_USERNAME / POSTGRES_PASSWORDDatabase connection
REDIS_URL / REDIS_PASSWORDRedis connection (sessions, Sidekiq, cache)
FRONTEND_URLPublic https URL; drives links in emails and the widget
SMTP settingsOutbound 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.

Updates

Recent builds.

4.17.1-r1

Sep 11, 2026

Or skip the ops

Host Chatwoot on your own private VPS.

One click installs this exact image on a VPS that is yours alone, domain and TLS wizard included. The same server runs as many apps as fit, with no per-app charge.

FAQ

Questions we get.

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.

Your server runs. You sleep.

Fully managed hosting from people who have been doing this since 2001.