Deploy

Free credit available Limited time

Chatwoot self hosted. The same inbox, on hardware you can point at.

Intercom's cheapest seat is $29 a month, billed annually. This is the whole server, and it does not count agents.

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. A European 8 GB server is $0.03/hr, about $23 a month, for every agent you add.

Launch Chatwoot

One click. Four containers. The template deploys in about twelve minutes.

+$5.00 added at signup · deployment choice preserved · no card

A European 8 GB server, $0.03/hr/Six locations, three continents/Every agent included, no seat fee/Deploys in about 12 minutes

What is Chatwoot self hosted?

The same inbox.
On hardware you can point at.

What it is. Running the open source build of Chatwoot on a machine you control, rather than subscribing to Chatwoot Cloud. The software is identical. What changes is who holds the database and who gets the bill.

Who it is for. Support teams past the third agent, where a per agent subscription starts to compound. Also anyone who needs customer conversations to sit inside their own infrastructure for a data residency or procurement reason.

When to use it. When the agent count is growing and the conversation volume is steady. A two person team inside Chatwoot's free tier should stay there, and we say so plainly below.

One-click template (live today)

Chatwoot self hosted requirements

What Chatwoot needs, and what arrives already wired.

RequirementThis deployment
VersionChatwoot v4.17.1, pinned
DatabasePostgreSQL 16 with pgvector, bundled
Cache and queueRedis 7, bundled and password-protected
ContainersFour: web, Sidekiq worker, database, cache
Memory8 GB recommended. Classed heavy, so it is the size the console defaults to
Architecturex86 or ARM, both supported
ConcurrencyFive concurrent web requests and one Sidekiq worker, as shipped
Outbound emailNot configured. Add your own SMTP server
Public sign-upClosed by default
What Selfhost.dev providesDetail
LocationsSix, across three continents
HTTPSCertificate issued and renewed per hostname
Custom domainOne, added after launch
BackupsOptional. Daily, whole VM, last 7 kept, +20% of the server price
MonitoringMetrics, logs, and a health check every 60 seconds
FirewallDefault deny, ports 22, 80 and 443
Deploy timeAbout 12 minutes for the template, once the server exists
MCP tools189 across 31 modules

Specifications current as of September 2026.

What is in the Chatwoot deployment

Four containers, and two of them share a tag on purpose.

Selfhost.dev pins every image to an exact tag. Nothing moves until you move it.

ComponentImage and tagWhat it does
Chatwoot webchatwoot/chatwoot:v4.17.1The Rails application, routed on port 3000
Sidekiq workerchatwoot/chatwoot:v4.17.1Background jobs, on the same pinned tag deliberately
PostgreSQLpgvector/pgvector:pg16The database, with pgvector
Redisredis:7-alpineQueue and cache, password-protected

The web process and the worker share one pinned tag by design

If a redeploy brought the two up on different versions, a job queued by one would be picked up by the other mid-flight. Pinning both to v4.17.1 makes that impossible.

The database is pgvector, and upstream pins something older

Chatwoot's AI features need the vector extension, and rails db:chatwoot_prepare fails on a database without it. Chatwoot's own published compose file pins pg12, which is past end of life. This template runs pg16.

What we set up for you

Pinned keys, pinned tags, and a closed front door.

This is the part a compose file does not do for you. Selfhost.dev wires the settings that decide whether Chatwoot works at all, and it wires them the same way every time.

  • SECRET_KEY_BASE is identical on the web container and the worker, and it is pinned rather than regenerated. A key that changed on redeploy would invalidate every session and every encrypted credential the instance holds.
  • FRONTEND_URL follows your live domain. Chatwoot derives three things from it: the links it emails, the chat-widget script your site embeds, and the Action Cable websocket address. Point it at the wrong host and the widget silently fails to connect.
  • Public sign-up ships closed. ENABLE_ACCOUNT_SIGNUP is false, so a deployment left briefly unclaimed cannot have an account created on it by a stranger who finds the address.
  • Database and Redis credentials are generated per deployment, never a documented default.
  • RAILS_MAX_THREADS is set to 5, which is the concurrency the 8 GB machine is sized for.
  • TLS per hostname, issued and renewed automatically, and a default-deny firewall with only 22, 80 and 443 open.

No Selfhost.dev template ever boots on a documented default password. If credential seeding fails, the instance boots locked rather than open.

How to self host Chatwoot in four steps

From zero to live.
No server to set up.

Four steps. Four containers, and the schema loads before the web process answers.

1

1. Choose Chatwoot and a server

The page opens the exact console template. Pick the 8 GB server and one of six locations, then submit. Nothing else needs configuring.

2

2. Let it build

Four containers start and the database schema loads before the web process answers. The template deploys in about twelve minutes, against a fifteen minute budget the platform holds itself to.

3

3. Claim the first account

Open the generated HTTPS address and complete the onboarding screen. That first account becomes the super administrator, and public sign-up stays closed behind it.

4

4. Add an inbox, SMTP and your domain

Create a website inbox and paste the widget script into your site. Add your SMTP server so invitations send. Then point your own domain at it from the resource Settings screen.

What we run, and what you run

Your inbox to run. Our machine to keep up.

Selfhost.dev runsYou run
The server, in one of six locationsChatwoot itself: inboxes, agents and teams
The four containers and their restart policyCanned responses, labels and automation rules
The TLS certificate, issued and renewedThe widget script on your own site
The default-deny firewall, ports 22, 80 and 443Your SMTP provider, once you add one
Server CPU and memory metricsApplication data, exports and retention
Optional whole-server backupsWhich Chatwoot version you move to, and when

We manage infrastructure, not application administration. There is no Chatwoot administration service here, and no sentence on this page should be read as one.

What an 8 GB server handles

Five concurrent requests, and what that means.

The 8 GB machine runs Chatwoot, PostgreSQL, Redis and the background worker together. Chatwoot ships configured for five concurrent web requests and one Sidekiq worker, which is the shape of a small support team rather than a call centre. Attachments land on the server disk, so the disk is the part to plan around.

ServerRAMDiskSold in
cx338 GB80 GBEurope
cx4316 GB160 GBEurope

The bill does not move when an agent joins, so the limit is the machine rather than a licence.

What Chatwoot hosting costs

No agent count, no plan above it.

Chatwoot is free software and Selfhost.dev does not charge for it. You pay for the server it runs on and nothing else. A European 8 GB server is $0.03/hr, about $23 a month if you leave it running, billed hourly against prepaid credits. There is no agent count and no plan above it.

ServerRAMDiskSold inRateAbout, at 730 hours
cx33, the recommended size8 GB80 GBEurope$0.03/hr$23.36
cax21, ARM8 GB80 GBEurope$0.04/hr$29.20
cx4316 GB160 GBEurope$0.06/hr$46.72
cpx318 GB160 GBEurope$0.07/hr$47.89
cpx318 GB160 GBSingapore$0.12/hr$90.08
ccx138 GB80 GBUS$0.16/hr$119.28

cx33, cax21 and cx43 are European machine types and are sold nowhere else. Price it in your own location, no signup needed.

ItemCost
Chatwoot, the software$0. Open source, and 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

If your credit balance reaches zero the server stops and Chatwoot goes offline, which means the chat widget on your site stops answering. Your data stays on the disk while the server exists, so topping up brings it back as it was. Deleting the server takes its backup images with it. Signing up adds $5 in free credit, no card needed.

What we can promise about this deployment

What we can prove without a testimonial.

Every service is health-checked every 60 seconds. A stalled deploy is retried automatically, not abandoned. A deploy is never reported done until the URL actually answers. Retrying a create never leaves you paying for two copies. Your version never moves on its own.

Chatwoot's template takes about twelve minutes, against a fifteen minute budget the platform holds itself to.

Sizing sheet

Working out what a support inbox costs?

Tell us your agent count and roughly how busy the inbox is, and we will send back the server size, the monthly cost and what it replaces on your current support bill. One email, no newsletter.

Chatwoot Cloud vs self hosted

Their free tier is real. So is its ceiling.

Chatwoot GmbH sells its own hosted product on AWS in the US. It is the same software, priced per agent per month on an annual plan.

PlanPriceWhat comes with it
Hacker$0Up to 2 agents, 500 conversations a month, 30 days of history, live chat only
Startups$19 per agent per monthUnlimited conversations, 1 year of history
Business$39 per agent per monthUnlimited conversations, 2 years of history
Enterprise$99 per agent per monthUnlimited conversations, 3 years of history
TeamChatwoot CloudChatwoot on Selfhost.dev
2 agents, light use$0, their free tier$23.36
3 agents$57 a month, annual commitment$23.36
10 agents$190 a month, annual commitment$23.36
10 agents on Business$390 a month, annual commitment$23.36

Prices from chatwoot.com/pricing, checked 14 September 2026, stated there as billed annually. Our figure is a European 8 GB server at 730 hours.

When Chatwoot Cloud is the better choice

Two agents on live chat, under 500 conversations a month. Chatwoot's own Hacker tier is free and hosted at that size, with thirty days of history. Below the third agent it is the cheaper answer and we would rather say so than pretend otherwise. And a hard requirement for SSO or SAML. Those sit on Chatwoot's Enterprise tier. The open source build does not carry them, and no amount of server changes that.

Metered on top of every paid tier: Captain AI credits at $20 per 1,000, with 300 included on Startups, 500 on Business and 800 on Enterprise. A busy month adds to the bill.

Chatwoot vs Intercom and Zendesk

One Intercom seat costs more than this whole server.

Intercom and Zendesk both charge per seat per month. Selfhost.dev charges for the server. Add a fourth agent to a Chatwoot and the bill does not move.

ProductPer seat, per monthBillingMinimum
Chatwoot on Selfhost.dev, European 8 GB$23.36 for the whole teamhourly, no commitmentnone
Intercom Essential$29billed annually1 Full seat
Intercom Advanced$85billed annually1 Full seat
Intercom Expert$132billed annually1 Full seat
Zendesk Support TeamUS$19paid yearlyper agent
Zendesk Suite TeamUS$55paid yearlyper agent
Zendesk Suite ProfessionalUS$115paid yearlyper agent

Sources: intercom.com/pricing and zendesk.com/pricing, both checked 14 September 2026, both stated as annual-plan prices.

At one seat, Intercom Essential already costs more than this entire server. At five agents it is $145 a month against $23.36, and at five agents on Zendesk Suite Team it is $275. Metered on top at Intercom: the Fin AI Agent at $0.99 per outcome, plus pay as you go for email, SMS, WhatsApp and Phone. That is a support bill that rises with the number of customers who need help, which is the opposite of what a growing company wants.

Chatwoot on a raw VPS, versus this

Same Hetzner box. Twelve minutes instead of an evening.

Selfhost.dev runs on Hetzner and we say so. The machine underneath this deployment is the one you would rent anyway. What you are buying is the twelve minutes instead of the evening.

On a raw VPS you do this yourselfHere it is already done
Write and debug the compose fileFour containers, pinned, wired
Notice that upstream pins an end-of-life PostgreSQLThe database is pg16 with pgvector
Generate and pin SECRET_KEY_BASE across two containersGenerated once, shared correctly
Install a reverse proxy and issue a certificateTLS per hostname, renewed
Close the ports you did not mean to openDefault deny, three ports
Keep the web process and the worker on one versionSame pinned tag, enforced

This is not a price-parity claim. Hetzner's own list price for a comparable machine is lower than ours, and the difference pays for the wiring, the certificate, the monitoring and the restarts.

Chatwoot self hosted limitations

Five things to know before you deploy.

  • No outbound email until you add SMTP. The mail settings ship present and empty. Password resets and agent invitations will not send on day one. This is the first thing to configure.
  • Public sign-up is closed by default, so the first account is claimed through the onboarding screen. Claim it before you share the address.
  • Five concurrent web requests and one background worker. That is the shipped concurrency on the 8 GB machine. A busier queue wants the 16 GB server.
  • The server is sized when you deploy it and is not expanded in place, so pick the size you want to grow into. Attachments accumulate on that disk.
  • SSO and SAML are not in the open source build. They sit on Chatwoot's Enterprise tier.

Chatwoot backup and restore

The database is the copy that matters.

Everything Chatwoot holds lives in one PostgreSQL database and on the server disk. Both are yours, and both can leave.

  • Optional whole-server backups cover the entire machine, including the database and the uploaded attachments, at +20% of the server price. Daily, the last 7 kept, rotating.
  • Your own dump, any time. pg_dump against the bundled PostgreSQL produces a portable file that restores onto any PostgreSQL 16 with pgvector, ours or anyone else's.
  • Attachments sit on the server disk, not in object storage, so a file-level copy of that directory belongs in the same routine as the database dump.
  • Leaving takes the dump and the attachment directory. There is no export format to negotiate and no vendor to ask.

Deleting the server takes its backup images with it, which is why a copy kept somewhere else is worth the ten minutes.

Migrating from Intercom or Zendesk

The importer is first-party, and it is one screen.

From Intercom, there is a built-in importer

In Chatwoot, go to Settings, then Data, then Import. Create a private app in Intercom's Developer Hub with read access to contacts and conversations, paste the access token, choose Contacts or Conversations or both, and start it. The import page tracks contacts, conversations and messages as they land.

From Zendesk, it is two halves

Contacts export from Zendesk as CSV and come in through the Import button on the Contacts tab. Conversations come through Chatwoot's Conversations API. Then remove the Zendesk snippet from your site, create a live chat inbox here and paste ours.

Two published limits, and both matter. File attachments are not transferred: when an Intercom message has attachments, Chatwoot adds a note indicating how many were skipped. And the import is a one-time historical migration, so new changes in Intercom are not continuously synced. This template pins v4.17.1 and the Intercom importer was already being improved at v4.16.2, so the feature is present in the version we deploy. Source: Chatwoot's own migration guides, checked 14 September 2026.

Frequently asked questions

Can I self host Chatwoot on Selfhost.dev?
Yes. Chatwoot is a one-click template you deploy onto your project server. Selfhost.dev provisions the server, brings up all four containers, issues the certificate and gives you a generated HTTPS address. You claim the first account through the onboarding screen and it becomes the super administrator.
How much does self hosted Chatwoot cost?
You pay for the server and nothing else. A European 8 GB server is $0.03 an hour, about $23 a month if you leave it running, billed hourly against prepaid credits. There is no agent count and no plan above it. Outside Europe the machine differs; the US equivalent is about $119 a month. See pricing.
Is self hosting cheaper than Chatwoot Cloud?
From the third agent, yes. Chatwoot Cloud Startups is $19 per agent per month on an annual plan, so three agents is $57 and ten is $190. An 8 GB server here is about $23 a month whatever the headcount. Below three agents their free Hacker tier is genuinely the better answer.
Does Chatwoot send email from this deployment?
Not until you add SMTP. The mail settings ship present and empty, so password resets and agent invitations will not send on day one. This is the first thing to configure after you claim the instance. Adding a provider is done inside Chatwoot rather than through a redeploy.
Why does Chatwoot want an 8 GB server?
The template runs four containers together: the Rails web process, a Sidekiq background worker, PostgreSQL with pgvector and Redis. The platform classes it as a heavy workload, so 8 GB is the size the console recommends and defaults to. You can pick a smaller machine deliberately, though it is tight.
Do SSO and SAML work on self hosted Chatwoot?
No. Single sign on and SAML sit on Chatwoot Cloud's Enterprise tier and are not part of the open source build this template deploys. No hosting arrangement changes that, because it is a licensing boundary rather than an infrastructure one.
Can I migrate from Intercom or Zendesk?
From Intercom there is a first-party importer: Settings, Data, Import, using an Intercom access token for contacts and conversations. From Zendesk, contacts export as CSV and conversations come through the API. File attachments are not transferred, and the import is one-time rather than a continuous sync.
What happens if my credit balance reaches zero?
The server is powered off first, not deleted, and we email you. You get a 24-hour grace period, and a top-up inside that window restarts the project rather than destroying it. Note the chat widget on your site stops answering while it is off, so keep a card on file.

About Selfhost.dev

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 and ClickHouse.

Self host Chatwoot. We will run the server.

One-click Chatwoot template, four containers wired
Custom domain and SSL, handled
Every agent included, one server rate
Launch Chatwoot