← All posts
Decision guide5 min read

[DECISION GUIDE] · May 5, 2026 · 15:00

Self-hosted live chat: when it makes sense (and when it doesn't)

Six honest signals that you should run muro on your own infrastructure — and four that mean you're probably better off on the hosted plan.

RM

Robin Monteiro

Founder, muro.chat

#self-host#infra#docker#compliance

muro ships as a Docker image you can run on any Linux box that speaks Postgres. The license is included on the Self-host plan. Reasons to switch from hosted to self-hosted come up in customer conversations every week, but they aren't always good reasons. Here's an honest split.

When self-hosting is the right call

  1. 01You already run other services on Hetzner / OVH / a private cloud. The marginal cost of one more container is near zero. You're not adding a new operational burden — you're reusing an existing one.
  2. 02You have data residency requirements that hosted EU doesn't cover. Some German Bundesländer want the data on a server they can physically point at; some healthcare networks need it inside their own VPC. Hosted muro is in EU but the box isn't yours.
  3. 03You're running 20+ websites and want one inbox. The hosted Pro tier caps at 10 sites; Self-host has no limit. Beyond ~30 sites, the Self-host monthly fee is cheaper than custom-quoting an extended hosted plan.
  4. 04You want to peer the chat traffic with your own monitoring. Sentry, Grafana, Datadog — your existing observability stack picks up the muro container the same way it picks up everything else. No separate vendor billing for logs.
  5. 05You want to fork. The codebase is source-available on the Self-host plan; some teams customise the branding deeper, add a column to a query, or change the rate limit logic. We don't merge those forks back unless they're generic — but you keep yours.
  6. 06Your industry asks for it. Defence, government, anything that needs an air-gapped option. Self-host runs disconnected from the internet for everything except outbound email (and you can swap that for a local relay).

When you should stay on hosted

  1. 01You have fewer than 5 websites. The hosted Team or Pro plan is cheaper than your time spent on patches.
  2. 02You don't have a dev who can run `docker compose up` on a server you administer. Self-hosting muro is intentionally simple, but it's not zero. You will see failed Postgres backups, expired TLS certs, a Hetzner reboot one Sunday morning.
  3. 03You want the latest features on day one. Hosted tracks main. Self-host tracks tagged releases (~1 release/month). The features land on hosted first by ~30 days.
  4. 04Your compliance question is GDPR. GDPR is fine on hosted muro — EU residency, signed DPA, public sub-processor list, audit trail, right-to-erasure. Self-host doesn't add GDPR strength; it just shifts the burden to you.

What self-hosting actually involves

The minimum viable deploy: one VPS with 4 GB RAM (we recommend 8), Postgres 17, Soketi for real-time, an SES or Postmark account for email. Total infra cost on Hetzner CX22 + managed Postgres on Neon: ~€18/mo. Plus the $99/mo Self-host license. Total all-in: ~$120/mo, fixed regardless of usage.

A pragmatic third path

Some teams start on hosted, get to feature-parity confidence in 2-3 months, then migrate to self-host once they're sure they want to commit to operating it. We support migration in both directions — there's a muro-export CLI on the Self-host plan that pulls everything as a SQL dump + media zip, and the inverse importer reads from a hosted JSON export.

✦ ✦ ✦

If you're not sure, stay on hosted. The plan upgrade is one click. Migrating later is two hours of work and we help.

RM

✎ Written by

Robin Monteiro

Founder, muro.chat