# Managed Matrix hosting vs self-hosting: which is right for you?

The pitch for self-hosting Matrix is simple: your data, your server, your rules. The pitch for managed hosting is equally simple: your data, your server, your rules, and someone else stays awake when it breaks.

Both paths use the same open-source stack. Both give you a federated, end-to-end encrypted chat server under your control. The only question is who runs it: you, or us.

Here is what each one actually costs.

* * *

## At a glance

| What matters              | You self-host                                                                                                                                                             | etke.cc runs it                                                                                                              |
|---------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|
| **Getting it running**    | A server, a domain, DNS you control, and root over SSH. Then enough Ansible to drive [the playbook](https://github.com/spantaleev/matrix-docker-ansible-deploy).          | You order, answer a few questions, and it shows up built: Docker, the homeserver, backups, firewall, fail2ban, SSH hardened. |
| **Weekly updates**        | You re-run the playbook yourself. It does not update while you sleep.                                                                                                     | We ship server and Matrix updates every week, whether or not you remembered they were due.                                   |
| **Breaking changes**      | The playbook stops and makes you read every breaking change before it will run again. A real safeguard, and also the reason you end up reading release notes at midnight. | We read the changelog so you do not. It rides along in the weekly pass.                                                      |
| **Backups**               | Yours to set up: a database dump and a copy of the files, on a schedule you build and hope you got right.                                                                 | Nightly, kept a week. We are the ones doing the restore.                                                                     |
| **Monitoring**            | Prometheus and Grafana are in the box. You still hook them up and stare at the graphs.                                                                                    | Monitoring that pages us the moment your server flatlines, email and Matrix both.                                            |
| **When it breaks at 2am** | You are on call. It is your server.                                                                                                                                       | You send us a message. We are already up.                                                                                    |
| **Your time**             | As much as it takes. Some months an evening, some weeks a bad one.                                                                                                        | Ours instead of yours. That is the thing you are actually paying for.                                                        |

* * *

## What self-hosting actually takes

If you already run Linux boxes, the playbook is one command. What comes after, the updates, the changelogs, the 2am wake-ups, that is the part you actually host. The playbook’s own README does not oversell it: it “tries to make self-hosting and maintaining a Matrix server fairly easy. Still, running any service smoothly requires knowledge, time and effort.”

Here is what stays on your plate:

- **A server, a domain, DNS you control, and root over SSH.** The basics. You need them before you start.
- **Comfort on the command line**, and enough Ansible to run the playbook.
- **Re-running upgrades yourself.** Nothing updates on its own. You pull, you run, you hope.
- **Reading breaking changes.** The playbook halts and will not run again until you acknowledge each one. The changelog you are acknowledging is past 4,600 lines and grows every week.
- **Your own backups**, and Postgres major-version upgrades by hand.

None of this is impossible. It is just recurring, and yours.

### The database will grow forever

Synapse uses an append-only table called `state_groups_state` to track room state. Append-only means it never shrinks. Deleting a room does not clean it up. Users cannot be deleted either. Even media attached to deleted messages stays on disk, because another message might reference it.

A server with fewer than ten active users can easily accumulate several gigabytes of database and media. The official recommendation is to set up message retention policies, run a separate media repository, and periodically vacuum the database. That is three things you need to configure, monitor, and maintain.

### Voice and video calls require a second deployment

The old way to do calls in Matrix was a TURN server (coturn). Then Element introduced [Matrix RTC](https://github.com/matrix-org/matrix-spec-proposals/pull/4143) with [LiveKit](https://livekit.io/), which enables group calls. The two systems are interoperable. Setting up LiveKit for Matrix requires a LiveKit server, the `lk-jwt-service` for authentication, and the right reverse proxy configuration. If you get it wrong, calls silently fail and nobody tells you why.

### Spam will find you within weeks

A Matrix server with open registration is a honeypot. Registration-spam operators scan the public homeserver list, find servers with registration enabled, and sign up thousands of accounts. Those accounts spam the federation with cryptocurrency promotions and worse.

To protect yourself, you need registration tokens, a federation deny-list, rate limiting, and a moderation bot like [Draupnir](https://etke.cc/help/bots/draupnir/). Someone to maintain all of the above.

### There is no admin panel

Synapse does not have a first-party admin interface. For years, the only way to manage users, rooms, and media was the Synapse Admin API. Which means `curl` commands or a third-party tool.

We built [Ketesa](https://etke.cc/help/extras/ketesa/) because we needed it ourselves. It runs in your browser, lets you manage users, schedule maintenance, view server status, and clear old media. No curl. No SSH. No separate deployment.

### Your users will struggle to sign up

Here is the onboarding flow for a new user on a self-hosted Matrix server:

01. Download Element X.
02. Tap “Create account”.
03. Tap “Change account provider”.
04. Tap “Other”.
05. Search for your server.
06. Element X tells you it cannot create a username-and-password account. You need SSO.
07. Download Element Classic instead.
08. Tap “Create account”.
09. Element Classic tells you to use Element X.
10. Go back to step 1.

We recommend a different set of apps. Our [clients page](https://etke.cc/help/clients/) has the full breakdown, but the short version: [Komai](https://etke.cc/komai/) on the desktop (native, Rust, no Electron), [Cinny](https://etke.cc/help/clients/#cinny-in-the-browser) in the browser, and [FluffyChat](https://etke.cc/help/clients/#fluffychat-on-your-phone) on your phone. All of them work without the loop above.

* * *

## What etke.cc does instead

Pick a [size](https://etke.cc/services/hosting/#server-sizes), from Small (2 vCPU, 2 GB) to Monster (16 vCPU, 32 GB), on a box we rent for you or your own, in one of six regions. Outgrow it and you bump up later.

Then we keep it boring, which is the entire job. Updates land weekly, backups sit for seven days with a self-service restore, and monitoring pages both of us the moment a port, a DNS record, or a Matrix endpoint goes dark. Setup ships hardened: fail2ban, a firewall, locked-down SSH, a tuned database.

Here is what is included:

- **Weekly automated maintenance**: database vacuum, media cleanup, system updates, everything that keeps a server healthy. Runs every week whether you think about it or do not. Details on our [services page](https://etke.cc/services/#maintenance).
- **Monitoring**: port checks, DNS validation, HTTP endpoint verification, VPS metrics. Alerts go to your email and your Matrix account. What we actually check is [documented here](https://etke.cc/services/monitoring/).
- **Ketesa**: a proper admin panel for your server. Manage users, schedule maintenance, view server status, clear old media. All from your browser. See what it can do [here](https://etke.cc/help/extras/ketesa/).
- **The Scheduler bot**: the same controls from inside Matrix, if you already live there. Read about it [here](https://etke.cc/help/extras/scheduler/).
- **Komai**: our desktop client, native and fast. No Electron, no nonsense. Download it [here](https://etke.cc/komai/).
- **Matrix RTC**: properly configured voice and video calls, as an add-on. It works. [Details here](https://etke.cc/help/extras/matrix-rtc/).
- **Bridges**: connect Matrix to WhatsApp, Telegram, Signal, Discord, Slack, and 13 more networks. Our [bridges page](https://etke.cc/help/bridges/) has the full list. Bridges are the most common add-on, and they are one of the main reasons people run Matrix in the first place.
- **Bots**: [baibot](https://etke.cc/help/bots/baibot/) for private AI, [Draupnir](https://etke.cc/help/bots/draupnir/) for moderation, [Honoroit](https://etke.cc/help/bots/honoroit/) for support tickets, [Scheduler](https://etke.cc/help/extras/scheduler/) for maintenance, [Hookshot](https://etke.cc/help/bridges/hookshot/) for webhooks. Each one maintained and updated as part of the weekly pass.
- **Support**: Basic support is included with every server. If you need more, [Dedicated support](https://etke.cc/services/support/#dedicated) puts you in a room with our developers.

* * *

## No lock-in, and we mean it specifically

- **Every line is open source** (AGPL): the [upstream playbook](https://github.com/spantaleev/matrix-docker-ansible-deploy) and [etke.cc’s own components](https://github.com/etkecc) alike. You can read exactly what runs on your server before it runs.
- **Root access** you can get root SSH access from the moment server is up and running. And by “root” we mean `uid=0(root) gid=0(root) groups=0(root)`, literally.
- **The subscription is monthly.** Cancel before the next renewal and that is it: no contract, no exit interview.

In our own words: if you ever become unhappy with our service, you can always host your server elsewhere or start maintaining it yourself. The playbook to do exactly that is the same one linked above.

* * *

## Which path is right for you?

**Self-host if:** you already run Linux servers, you enjoy the work, you have time for it, and your chat setup is simple enough that the maintenance burden stays manageable.

**Go managed if:** you want Matrix without the overhead, you have a team or community relying on it, you need bridges and bots to work, or your time is worth more than the subscription cost.

Either way, the software is the same. The only difference is who stays awake when it breaks.

[Order a managed server](https://etke.cc/order/) and get Matrix without a headache. Or [talk to us](https://etke.cc/contacts/) if you want to know more. We answer questions from actual people who will know your server by name.


---
* [llms.txt](https://etke.cc/llms.txt): full site index in markdown
