The database is Postgres 16 with pgvector
Chatwoot's AI features need the vector extension: rails db:chatwoot_prepare fails on a database without it. This template runs pgvector/pgvector:pg16, the database image Chatwoot's own compose file uses.
Chatwoot v4.17.1, the open source live chat and shared support inbox, deploys as a one-click template with PostgreSQL, Redis and its background worker onto a dedicated server Selfhost.dev provisions, secures and runs, across six locations on three continents.
Intercom's cheapest seat is $29 a month, billed annually. This is the whole server and it does not count agents.
The open source build of Chatwoot, run on a server you control instead of a Chatwoot Cloud subscription. Same software, but you hold the database and the bill.
Support teams from the third agent on, where a per agent subscription starts to compound. That is where the server starts to pay off.
When the agent count is growing. A two person team inside Chatwoot's free tier should stay there.
Four containers, with web and worker on one pinned tag. A redeploy can never split them across versions mid-job. Postgres stays on 16 and Redis on 7.
Chatwoot's AI features need the vector extension: rails db:chatwoot_prepare fails on a database without it. This template runs pgvector/pgvector:pg16, the database image Chatwoot's own compose file uses.
Your site widget, your agents and the API
TLS and routing
Chatwoot web v4.17.1
Sidekiq worker
Postgres 16 + pgvector
Redis 7
| Component | Image and tag | What it does |
|---|---|---|
| Chatwoot web | chatwoot/chatwoot:v4.17.1 | The Rails application, routed on port 3000 |
| Sidekiq worker | chatwoot/chatwoot:v4.17.1 | Background jobs, on the same pinned tag deliberately |
| PostgreSQL | pgvector/pgvector:pg16 | The database, with pgvector |
| Redis | redis:7-alpine | Queue and cache, password-protected |
Chatwoot Docker guides ask for a compose file, an .env with three secrets plus your domain, a schema command and a reverse proxy before the inbox loads. On this template each of those steps is already done the same way on every deploy, so the first screen you see is Chatwoot's own.
| What the Docker guide has you do | On this template |
|---|---|
Download docker-compose.yaml and .env | Four containers, pinned and wired |
Set POSTGRES_PASSWORD and REDIS_PASSWORD | Generated for each deployment, never a default |
Generate SECRET_KEY_BASE for web and worker | Generated once, identical on both |
Set FRONTEND_URL to your domain | Follows your live domain, so widget links keep working |
Run rails db:chatwoot_prepare | Runs on every boot, before the web process answers |
| Put Nginx or Caddy in front with SSL | TLS per hostname, renewed for you; only ports 22, 80 and 443 open |
Keep ENABLE_ACCOUNT_SIGNUP false in .env | Off from the first boot |
Chatwoot self hosted requirements come down to an 8 GB server and the right database: Postgres with the pgvector extension, which Chatwoot's schema load fails without. Attachments stay on the server's own disk, so no S3 bucket is needed to start. Everything below arrives already wired.
Pick the 8 GB server and a location. The template deploys in about twelve minutes.
Open the generated HTTPS address and finish the onboarding screen. That account becomes the super administrator and public sign up stays closed behind it. Until then, anyone who reaches the address could claim it.
Create a website inbox and paste the widget script into your site. Add your SMTP settings so invitations send, then connect your own domain from Settings.
Chatwoot self hosted pricing here is one server rate. Chatwoot is free software and the template adds no fee. Agents, inboxes and conversations never change the bill. A European 8 GB server runs the whole stack, billed by the hour against prepaid credits.
| Item | Cost |
|---|---|
| Chatwoot, the software | $0. Open source; we do not resell it |
| Its bundled PostgreSQL and Redis | $0 |
| The Sidekiq background worker | $0 |
| HTTPS certificate and custom domain | $0 |
| Agents, seats or accounts | $0 at any number |
| Bandwidth | $0. Traffic is included in the server price |
| Optional whole-server backups | +20% of the server price |
| Server | RAM, cores, disk | Where | Rate | About a month |
|---|---|---|---|---|
cx33 (recommended) | 8 GB, 4 cores, 80 GB | Europe | $0.03/hr | $23.36 |
cax21 (ARM) | 8 GB, 4 cores, 80 GB | Europe | $0.04/hr | $29.20 |
cx43 (room to grow) | 16 GB, 8 cores, 160 GB | Europe | $0.06/hr | $43.22 |
ccx13 | 8 GB, 2 cores, 80 GB | US | $0.16/hr | $119.28 |
cpx32 | 8 GB, 4 cores, 160 GB | Singapore | $0.19/hr | $135.63 |
Monthly figures assume 730 hours.
With a card on file or a past top-up, the server is powered off and held for 24 hours. The chat widget goes quiet until a top-up in that window restarts it. Welcome-credit-only servers are deleted at zero, backups included.
Price it in your own location, no signup needed.
Chatwoot Cloud and this template run the same software. Cloud prices each agent on an annual plan; here the server is the price, whatever the headcount. From the third agent on, the server costs less every month and the gap widens with each new hire.
| Team | Chatwoot Cloud | Chatwoot on Selfhost.dev |
|---|---|---|
| 2 agents, live chat, under 500 conversations a month | $0, Hacker | $23.36 |
| 3 agents | $57, Startups | $23.36 |
| 10 agents | $190, Startups | $23.36 |
| 10 agents on Business | $390 | $23.36 |
Cloud at $19 and $39 per agent per month, billed annually (chatwoot.com/pricing). Ours: a European 8 GB server, 730 hours.
Chatwoot's own free tier covers two agents on live chat, up to 500 conversations a month, with thirty days of history. Past any one of those three, it is $19 per agent per month on an annual plan.
Chatwoot's template deploys in about twelve minutes. That is the platform's own budget, not an estimate.
None of these a dealbreaker? The template deploys in about twelve minutes.
Launch ChatwootChatwoot backup and restore rests on two things: the Postgres database and the attachments on the disk. A daily server image covers both; a pg_dump plus a copy of the attachment folder restores on any Postgres 16 with pgvector, ours or anyone else's.
| Method | What it covers | Where it lives |
|---|---|---|
| Daily server backup (optional, +20%) | The whole server, database and attachments, last 7 kept | With the server |
pg_dump over root SSH | Every conversation, contact and setting | Wherever you copy it |
| A copy of the attachment folder | Uploaded files | Wherever you copy it |
Deleting the server takes its backup images with it.
Tell us your agent count and roughly how busy the inbox is. We will send back the server size, the monthly cost and what it replaces on your current support bill. One email, no newsletter.
The software is free and the template adds no fee, so you pay only for the server, by the hour. One 8 GB server runs Chatwoot for any number of agents. Conversations, inboxes and bandwidth are never metered. The rate for each region is in the pricing table above. See pricing.
Yes. Chatwoot is open source and its core inbox is free to run: live chat, email, social channels, automations and reports. Chatwoot also sells paid licences for self hosted installs, priced per agent. Its Enterprise licence is what adds SSO and SAML. No server setup changes that.
Not until you add SMTP. The mail settings ship empty, so password resets and agent invitations won't send on day one. Adding your provider's SMTP details is the first thing to set after claiming the account, before you invite the rest of the team.
No. Chatwoot's default storage is local. This template keeps attachments on the server's own disk, covered by the daily server backup if you switch it on. You can point Chatwoot at an S3 compatible bucket later if attachments outgrow the disk, but nothing needs one to start.
Yes. Selfhost.dev's MCP tools create the project, deploy the Chatwoot template and manage its custom domain from any MCP client. They manage the server and the template; reading or answering conversations goes through Chatwoot's own API, which works the same here as anywhere.
Yes. From Intercom, Chatwoot has a built-in importer under Settings, Data, Import that brings contacts and conversations with their messages, using an Intercom access token. From Zendesk, contacts come in by CSV and conversations through the API. Attachments aren't transferred and the import runs once.
Selfhost.dev is a managed self hosting platform for developers and small teams. Open source apps and databases on dedicated servers you control, billed by the hour, in six locations across three continents.
Best for: Chatwoot, Twenty CRM, Mautic, n8n and managed PostgreSQL, MySQL, Redis, ClickHouse, OpenSearch and Kafka.