HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
spantaleev
matrix-docker-ansible-deploy
Jinja2019–2026
spantaleev / matrix-docker-ansible-deploy

matrix-docker-ansible-deploy

🐳 Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker

50Distinct people
80Mentions
4Explicit recommenders
6.5KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

🐳 Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

I just configured one today. Took me no more than 15min. Highly recommend. If you are starting fresh, I recommend using the Ansible playbook:…

alwayslikethis used a recommendation phrase. 4 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

Ask HN: How did you convince family and friends to join your XMPP/Matrix server? direct repository linkDebated

Participants overwhelmingly criticize the poor user experience of XMPP and Matrix clients as a barrier to adoption, while arguing that convincing non-technical users requires either offering superior convenience via Signal or providing a seamless, pre-configured experience. The discussion highlights a fundamental disagreement between privacy advocates who insist on sovereign protocols and users who prioritize ease of use and network effects.

97 readable replies · Supporting reply 1 · Supporting reply 2 · Supporting reply 3 · Supporting reply 4

Mentions over time

HN mentions by year80 dated mentions

Observed mentions: 2019-02-22 10:09:35 UTC to 2026-01-30 15:01:14 UTC.

01020302019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 6 mentions; 0 submissions, 6 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 27 mentions; 2 submissions, 25 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 8 mentions; 0 submissions, 8 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 15 mentions; 0 submissions, 15 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 15 mentions; 0 submissions, 15 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC303
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC606
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC27225
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC808
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC15015
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC15015
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC404
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC202

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker 🎯 Purpose This Ansible playbook is meant to help you run your own Matrix homeserver, along with the various services related to that. That is, it lets you join the Matrix network using your own user ID like @alice:example.com, all hosted on your own server (see prerequisites). We run all supported services in Docker containers (see the container images we use), which lets us have a predictable and up-to-date setup, across multiple supported distros (see prerequisites) and architectures (x86/amd64 being recommended). Installation (upgrades) and some maintenance tasks are automated using Ansible (see our Ansible guide). ☁ Self-hosting or Managed / SaaS This Ansible playbook tries to make self-hosting and maintaining a Matrix server fairly easy (see Getting started). Still, running any service smoothly requires knowledge, time and effort. If you like the FOSS spirit of this Ansible playbook, but prefer to put the responsibility on someone else, you can also get a managed Matrix server from etke.cc (both hosting and on-premises) - a service built on top of this Ansible playbook but with additional components and services which all help you run a Matrix server with ease. Be advised that etke.cc operates on a subscription-based approach and there is no "just set up my server once and be done with it" option. 🚀 Getting started We have detailed documentation in the docs/ directory - see the Table of Contents in the documentation README. While the list of supported services and documentation is very extensive, you don't need to read through everything. We recommend: Starting with the basics. You can always add/remove or tweak services later on. Following our installation guide. There are two guides available for beginners and advanced users: ⚡ Quick start (for beginners): this is recommended for those who do not have an existing Matrix server and want to start quickly with "opinionated defaults". Full installation guide (for advanced users): if you need to import an existing Matrix server's data into the new server or want to learn more while setting up the server, follow this guide by starting with the Prerequisites documentation page. If you experience an issue on configuring the playbook, setting up your server, maintaining services on it, etc., please take a look at our FAQ. If you cannot find an answer to your question, feel free to ask for help and support. ✔ Supported services Using this playbook, you can get the following list of services configured on your server. Basically, this playbook aims to get you up-and-running with all the necessities around Matrix, without you having to do anything else. Notes: The list below is exhaustive. It includes optional or even some advanced components that you will most likely not need. Sticking with the defaults (which install a subset of the above components) is the best choice, especially for a new installation. You can always re-run the playbook later to add or remove components. Deprecated or unmaintained services are not listed. You can find documentations for them here. Homeserver The homeserver is the backbone of your Matrix system. Choose one from the following list. Name Default? Description Documentation Synapse ✅ Storing your data and managing your presence in the Matrix network Link Conduit ❌ Storing your data and managing your presence in the Matrix network. Conduit is a lightweight open-source server implementation of the Matrix Specification with a focus on easy setup and low system requirements Link continuwuity ❌ Storing your data and managing your presence in the Matrix network. Link Tuwunel ❌ Storing your data and managing your presence in the Matrix network. Tuwunel is the official successor to conduwuit. Link Dendrite ❌ Storing your data and managing your presence in the Matrix network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse. Link Clients Web clients for Matrix that you can host on your own domains. Name Default? Description Documentation Element Web ✅ Default Matrix web client, configured to connect to your own Synapse server Link Hydrogen ❌ Lightweight Matrix client with legacy and mobile browser support Link Cinny ❌ Simple, elegant and secure web client Link Sable ❌ Simple, elegant and secure web client Link SchildiChat Web ❌ Based on Element Web, with a more traditional instant messaging experience Link FluffyChat Web ❌ The cutest messenger in Matrix Link Commet ❌ Matrix web client Link Server Components Services that run on the server to make the various parts of your installation work. Name Default? Description Documentation PostgreSQL ✅ Database for Synapse. Using an external PostgreSQL server is also possible. Link Traefik ✅ Web server, listening on ports 80, 443 and 8448 - standing in front of all the other services. Using your own webserver is also possible. Link Let's Encrypt ✅ Free SSL certificate, which secures the connection to all components Link Exim ✅ Mail server, through which all Matrix services send outgoing email (can be configured to relay through another SMTP server) Link coturn ❌ STUN/TURN server for WebRTC audio/video calls Link ddclient ❌ Dynamic DNS Link Matrix RTC stack ❌ Supporting components (LiveKit Server and LiveKit JWT Service) for in-app audio/video calls for Matrix clients Link Authentication Extend and modify how users are authenticated on your homeserver. Name Default? Description Documentation matrix-synapse-rest-auth (advanced) ❌ REST authentication password provider module Link matrix-synapse-shared-secret-auth (advanced) ❌ Password provider module Link matrix-synapse-ldap3 (advanced) ❌ LDAP Auth password provider module Link Matrix User Verification Service ❌ Service to verify details of a user based on an Open ID token Link synapse-simple-anti
Read the full README on GitHub

What Hacker News says

80 sources
Matrix.org itself doesn't publish an 'official' way to run a server, given there are multiple implementations and distros out there. If you're happy using kubernetes, https://element.io/server-suite/community should be a good bet (or https://element.io/server-suite/pro if you are actually doing mission-critical stuff and want a version professionally supported by Element) If you're happy using docker-compose, then https://github.com/element-hq/element-docker-demo is a very simple template for getting going. Alternatively, https://github.com/spantaleev/matrix-docker-ansible-deploy is quite popular as a 3rd-party distro using ansible-managed docker containers. Sorry all for the downtime on matrix.org - we're having to do a full 55TB db restore from backup which will take ~17 hours to run. :|
In Matrix.org – Database Incident
I'm sorry to hear that you got overwhelmed and gave up on Matrix! Below, I'll try to explain why it can overwhelming and how one might navigate things better. While the Ansible playbook's documentation is huge (which can be both good and bad), one does not necessarily need to read through everything to get started. The playbook's documentation tries to guide you through the required steps to get started and always tries to suggest "skipping ahead" and staying with the recommended defaults. It does mention additional services, but branching off into reading about esoteric additional features from the very beginning is not necessary. It's better to follow the steps and start with the basics. You can add additional services and tweak the existing ones later on at any time. That said: - just like a production-ready email system is complicated
Read the rest
to deploy, so is Matrix (even with the Ansible playbook). Some learning and planning is necessary. Important decisions (with regard to domain names, etc.) need to be made upfront - the playbook's documentation may benefit from a new and dedicated "quick-start guide" which would not even mention most or any of the additional services. This could help people get started quicker, instead of making them give up due to analysis paralysis As for the latter, there are various articles (blog posts) online where people guide you through using the playbook (they act as a "quick start guide"). A downside to those is that some may be out of date and/or skip through steps which may turn out to be important later. The playbook's documentation is extensive, because it not only aims to get you running, but to also instill knowledge as to how things work so that you're more capable of managing the deployment later on. It's a bit like the Arch Linux Wiki in this regard - it gives you more to read (and walls of text can be scary), but is also there for you for when you need help. Disclaimer: I'm the author of the matrix-docker-ansible-deploy (https://github.com/spantaleev/matrix-docker-ansible-deploy) playbook
In Matrix 2.0 Is Here
Having more deployment options and quick-start guides is always great! That said, the Ansible playbook provides various benefits that you cannot currently get with any other Matrix deployment method. For one, it seems to be the only deployment method that supports hundreds of Matrix and related services which all tie together nicely. Getting started quickly and easily is an important part, but is not the end. Most people will sooner or later need "that extra service" (bridge, bot, etc.) and it's always a hassle to get it added to a "quick & dirty" deployment. Using the Ansible playbook, enabling an extra service is usually one extra line of configuration and you're up & running with a deployment that has been battle-tested and improved by hundreds/ thousands of others. You're not alone debugging a hand-made "Synapse worker configuration"
Read the rest
or "Matrix Authentication Service" integration - there are many others iterating on the same exact setup. Another compelling reason to go with the playbook is maintaining your deployment over time - handling major Postgres version upgrades, backups, uninstalling old/deprecated services (to replace them with newer alternatives), etc. Yes, Ansible can be slow and clunky (and the YAML format is definitely annoying), but it seems like a reasonable tradeoff that provides plenty of benefits. Disclaimer: I'm the author of the matrix-docker-ansible-deploy (https://github.com/spantaleev/matrix-docker-ansible-deploy) playbook
In Matrix 2.0 Is Here
If you want to self-host the actual free open-source software, you can totally do that. You just shouldn't go looking at the product page of the enterprise offering for it (: It looks like ESS is mostly managed deployment of otherwise opensourced software like Synapse, Element Web, Element Call, and friends. And I guess they have some backoffice with a glossy web UI for account/user management. https://github.com/spantaleev/matrix-docker-ansible-deploy is a good starting point!
In We have lift-off Element X, Call and Server Suite are ready
Dealing with stuff like running a state compressor regularly, manually removing records it bails on. Also having fast enough resources to handle situations like someone joining the Matrix HQ channel (it's the biggest one) and pulling in like 70GB of database bloat. I hit a bug a month or two back where sliding-sync (the new protocol Element X uses) was causing huge amounts of database bloat, they fixed it but my instance was running something like 200GB on a server with less than 10 people. This ansible playbook helps a lot but it's still periodic annoying maintenance and it's still way more resource intensive than it should be: https://github.com/spantaleev/matrix-docker-ansible-deploy EDIT: I run it on a hetzner dedi, I have run it on Apple fusion drives in the past and consumer SSD's and it was a terrible time. Need high IOPS so things
Read the rest
don't grind to a halt on intensive db operations (like joining HQ channel lol)
In XMPP vs. Matrix
My friends and I all selfhost own matrix homeservers and we use it to chat. It works reasonably well, but stil the administrative work required should not be underestimated, comparable to selfhosting e-mail. Regarding features, matrix is promising and definitly innovative, but espacially the mobile apps don't have the same level of usability like WhatsApp or novel features like Telegram. Techsavvy friends can definitly use it, but you don't want to become a managed service provider for your broader family. I use this ansible playbook to provision my server and related services (monitoring, bridges, ...) [0]. The bridges espacially make it fun to play around with. [0] https://github.com/spantaleev/matrix-docker-ansible-deploy
In XMPP vs. Matrix

Showing the 15 most recent of 80 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.