What does HackerNews think of matrix-docker-ansible-deploy?

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

Language: Jinja

#2 in Docker
It might be difficult to switch at this point, but I highly recommend matrix-docker-ansible-deploy[0]. Enabling sliding-sync is one config entry.

[0] https://github.com/spantaleev/matrix-docker-ansible-deploy

It's $0/user/infinity if you host your own Matrix server[0]. You don't have that option with Discord. Your data will remain with discord servers.

Element is hardly b2b lol.

---

[0]: https://matrix.org/

A good starting point if you're tech literate is this:

https://github.com/spantaleev/matrix-docker-ansible-deploy

Yes. Self-host using this Ansible playbook has been a joy.

https://github.com/spantaleev/matrix-docker-ansible-deploy

A top notch well managed Ansible setup!

It hasn’t integrated in a good iMessage bridge yet last I checked. Hopefully soon!

I love self hosting. Here’s my home setup.

Hardware (you don’t need much!)

Mini atx tower, 8TB usable storage, Debian, AMD processor, 8GB memory

Pfsense Firewall (Tailscale exit node)

Plume Wi-Fi (would like to replace, owned by comcast now)

Solution stack:

Portainer + Docker Compose to manage everything

Nextcloud

Photo Prism

Tailscale (remote WireGuard based access from all my devices. Integrates well with Pfsense)

Home Assistant (amazing platform for home automation and more). I love the new voice control features and mission!

Used to self host Email with Helm hardware company (not k8s Helm) but they went out of business. Self hosting email is annoying thanks to the big email providers and their control over the spam filtering world.

Matrix chat server bridging all the chat interfaces I use. This is managed by an awesome open source Ansible playbook https://github.com/spantaleev/matrix-docker-ansible-deploy

Pihole

Man at this point you're just looking for excuses.

You can host bridges yourself too

https://github.com/spantaleev/matrix-docker-ansible-deploy/

There's not much complexity really. This handbook takes care of most stuff for you:

https://github.com/spantaleev/matrix-docker-ansible-deploy/

Been hosting it alongside some bridges(like irc) for a while now.

I've been happily running a Synapse homeserver with Matrix on top. It has a couple of bridges (Discord/Telegram/Signal) so the people I invite through those platforms can use my server to get to those services, optionally. Slowly but surely my friends have been migrating.

In my experience Element for Android starts off pretty fast, but as the weeks progress it gets slower and slower to load chats. Element on Linux does not have that problem, and neither does Schildichat for Android. It is my client of choice, anyone frustrated by a slow client should try that one on for size.

That said I'm excited for the new version. I used this Ansible/Docker setup, easy as pie:

https://github.com/spantaleev/matrix-docker-ansible-deploy

Matrix Docker Ansible Deploy [1] allows me to unify all chat networks that I use under one single server (and, therefore, one single client), avoiding switching windows. I do believe it saved me hundred of hours...

[1] https://github.com/spantaleev/matrix-docker-ansible-deploy

https://etke.cc/order/

https://github.com/spantaleev/matrix-docker-ansible-deploy

this suggests etke which have a $25/onetime to install on your server. this is VERY VERY cheap instead of spending 3 days or whatever. I mean, if the author spent 3 days on this and finished it, that means he/she could do it in much less time next time around.

paying someone literally fixes this issue in a second and $25 is nothing compared to the benefits of selfhosting.

heck, even their monthly $5/month maintenance is extremly cheap if you can't even do that and you are paying for someone's salary also so everyone wins

If you want to quickly deploy Matrix (and all the related goodies) on your server,I highly recommend https://github.com/spantaleev/matrix-docker-ansible-deploy. It's one of the best maintained project I've seen, a pleasure to install, maintain and upgrade.
Good call, I'm working on that project this weekend for myself.

I grabbed this resource from Beeper's landing page: https://github.com/spantaleev/matrix-docker-ansible-deploy

Is that what you're using?

There's matrix-docker-ansible-deploy (1), an Ansible Playbook that makes setting up a Matrix homeserver and bridges easier. But it's still a pain, like you said. I ran one for a while (with bridges for Skype, Instagram DM, etc), but decided it was too much work and deleted it.

1: https://github.com/spantaleev/matrix-docker-ansible-deploy

> It’s compelling to look at the non-hosting users, conclude that they are a smashing majority (99.8% !!!!), and make a sweeping conclusion that no one wants to host their own servers. Yet it’s precisely because of those 0.2% that the system is capable of existing. Take them away, and the whole system dies.

The Matrix chat protocol is like this - you have many more users than servers, but you can switch servers, the servers can talk to each other (federated), and there are even multiple implementations of server software.

I've moved almost 100 friends (in their 20s) onto Matrix - Element is getting really good, and some use FluffyChat or SchildiChat. They aren't running their own servers, but they can if they want (unlike Signal), or they can switch down the track.

It's pretty easy to host your own - it took me an hour or two to set a Matrix server up on a $5/month VPS, and maintenance involves running one setup command again: https://github.com/spantaleev/matrix-docker-ansible-deploy

I'm running a small (at the beginning it was completely public, now I'm keeping an eye on registrations) homeserver with synapse for a few years - I really like Matrix on a conceptual level and I'm happy that it exists even through it's not perfect it works pretty well mostly. I don't want to be too harsh because it's the best decentralized alternative for chat at the moment and it's open-source and there is a lot of progress but damn' it was a pain in the ass to run that server... we solved our problems mostly with throwing resources and memory on the problem... it's a nice tour de force if you want to learn about debugging distributed systems but it's nothing to install somewhere and just keep running.

synapse is quite a mess and there are a lot of hidden footguns if you just run a server - this is just the tip of iceberg to keep the postgres database somewhat sane: https://levans.fr/shrink-synapse-database.html - lot's of other issues in the issue-tracker where you can just scratch your head.

bridges are all subtly broken - the xmpp bridge is horrible and broke in so much interesting ways that I'm not going to touch it ever again - telegram works okay most of the time, irc-bridge also have some warts - but it's easy to criticize from my chair and probably unfair to talk so negative about it here but it's often buggy and broken for edge-cases - it works most of the time pretty okay but it's quite a mess to get a mental model for the code and so it's difficult to debug things.

moderation/spam/etc.pp is all hackable but not there out of the box - it looks and feels like mostly quickly hacked up nodejs code that at least for us exploded in all kinds of interesting ways. https://github.com/matrix-org/mjolnir writing 3tb of logs in a few day and eating memory like crazy for instance. You have to babysit it and there is no simple ui for anything.

So it's powerful but requires quite a bit of dedication and patience to get right. It's a full blown distributed system and often state is all over the place and once you make a mistake it's difficult to impossible to get that thing do work correct again without starting over.

But there are so much promising projects that I'm confident that these issues will be resolved and it will only get better but in my experience it will break badly on all kinds of edge-cases - the mentioned xmpp-bridge created usernames that can't be deleted via the http api for instance. someone bridged 1000 channels via our telegram-bridge and there is no code to remove those channels - you have to code something up in python for yourself. irc bridge kicks you after 30 days idle because they can't handle the connections - freenode (before the takeover) said it's not them - maybe single threaded nodejs is not such a good idea for that.

Could I do it any better and delivering? Probably not. But except some adventure and if you want to deploy it for an org carefully test any assumptions you take for granted. It's cool but it's also kind of quick'n'dirty in a lot of ways. Still better than anything else I'd use it over any megacorp messenger anytime but maybe don't switch your family yet.

But for using it you don't have to care - and there are great projects like https://github.com/spantaleev/matrix-docker-ansible-deploy that solve most of the problems out of the box and mobile clients and web clients and E2E crypto also works really well.

Have you seen this repository[0] that automated most of the configuration? I have a similar goal to you (get family off of Google Chat), and I was pulling my hair trying to manually set things up. Now the hard part of getting them to migrate...

[0]: https://github.com/spantaleev/matrix-docker-ansible-deploy

Might be time to move to Matrix hey :D

Element provides free accounts, managed hosting designed for communities [1] or you can host your own [2].

There are plenty of clients in case you don't like Element [3].

[1]: https://element.io/communities

[2]: https://github.com/spantaleev/matrix-docker-ansible-deploy/

[3]: https://matrix.org/clients/

It is possible. I've been running my own for a year, but it takes quite a hefty server at least with Synapse, and it's not cheaper compared to the quite nice 5 euros a month pricing here.

If you want to give it a try, this is what I used: https://github.com/spantaleev/matrix-docker-ansible-deploy

They don't even need to sell this package, it's free and a lot of people do it: https://github.com/spantaleev/matrix-docker-ansible-deploy/

The benefit to hosting by a company is it should be more reliable.

You might be able to use Matrix and Element, was just reading about it yesterday...

I stumbled on this repo, might help you get a sense of how difficult it might be with this route and what features it would give you: https://github.com/spantaleev/matrix-docker-ansible-deploy

I found the Ansible playbook [1] on GitHub extremely easy to use. As long as you know how to configure DNS records and firewalls, the rest is taken care of. This is what I use today to manage my Synapse server.

Also Oracle Cloud offers free ARM instances with 4 CPU cores and 24 GB of RAM, more than enough to run a very speedy Synapse server.

[1]: https://github.com/spantaleev/matrix-docker-ansible-deploy

For cross platform chat based on Matrix also see https://www.beeper.com/, built by the pebble founder. (paid service, works with iMessage even on Android).

If you want to self host a Matrix server complete with all the bridges see here:

https://github.com/spantaleev/matrix-docker-ansible-deploy

Or - you could just ask your friends to download Element! https://element.io/

If running an Ansible playbook [1] is "close to impossible" for you, then there are a few different companies who will host a server for you. Including the guys mentioned in the main article here.

Sure, Synapse's performance isn't great, but still. Last summer I was able to run Synapse on a 1 vCPU, 1 GB RAM droplet from Digital Ocean. I had 100 copies of a bot running, each with their own room, constantly sending messages and replies to each other. With all 100 going at once, it was super slow. But with fewer bots, or with a lower chance of replying to a message, it worked pretty well. Not bad for like $10 / month.

Also, if you want light and fast, check out Conduit, the homeserver written in Rust: https://conduit.rs/

[1] https://github.com/spantaleev/matrix-docker-ansible-deploy

This sounds like what you need: https://github.com/spantaleev/matrix-docker-ansible-deploy

I don't know anything about ansible, or much about docker, or self hosting. And I was able to set it up and it's working quite well for my family and friends. You don't have to enable federation. Set federation_domain_whitelist to an empty list, and poof, federation disabled.

DNS settings are pretty easy too - especially if you can allow your instance to take control over an entire domain (and don't have to host other web services other than what the playbook supports). Don't need the SRV stuff here: https://github.com/spantaleev/matrix-docker-ansible-deploy/b...

If you just have a private server for < 100 users, 1 vCPU and 2GB RAM is enough. I also use it for bridging to IRC using heisenbridge (which the playbook supports) and it's no problem on the tiny server.

Updates are very easy, pull the latest playbook, and run setup again. Done.

There's also https://github.com/spantaleev/matrix-docker-ansible-deploy which can basically set up an entire matrix "ecosystem" including telephony, bridges and bots with one command and some basic configuration.
Doing the steps required manually was a little of a pain. I've found using an ansible playbook like https://github.com/spantaleev/matrix-docker-ansible-deploy to be the easiest way to setup a homeserver.
Sorry for the late reply, I use https://github.com/tulir/mautrix-whatsapp as bridge for my Matrix server. You need your own server to install this bridge. The easiest way to do all this is with https://github.com/spantaleev/matrix-docker-ansible-deploy, which takes care of many things
I'm using https://github.com/spantaleev/matrix-docker-ansible-deploy and I can't recall off of the top of my head, but I'm pretty sure out of the box the coturn server will make webRTC "just work". I also explicitly made sure jitsi was disabled to make sure it wasn't using it, and yeah, this ansible playbook is game changing. I tried to run Matrix 3 different ways before giving up and using the playbook.
Been using it for a while now, mostly through bridges. e2ee works pretty much seamlessly now, as does the entire federation thing. Cross-device verification is simple; manual fingerprint comparisons have been replaced by the simple emoji comparison screens also found in other apps.

If you don't want to bother setting up a server (and power to you, because server maintenance is annoying) just register with any open Matrix server you deem reliable enough. The matrix.org one is (obviously) pretty popular. As an end user, the federation stuff is no different from your average email address; there's a domain you store your stuff on and send your stuff through, that server is part of your address. If you make an account with a service provider that goes down, your messages disappear, same thing as would happen if Gmail or iCloud would take their servers down.

If you want the security of your domain but none of the hassle of managing a server, you can get managed Matrix servers from different providers these days [0]. Just get your own domain like normal, so your address will always be your own property and you can take it somewhere else if you really need to, and point the domain records at the servers of your provider.

If you do want to set up a server and join the Matrix network, there's an Ansible playbook [1] that'll set everything up on your server. You can also use the complete guide [2] if you want to manage everything manually. If you have any trouble getting federation to work, there's a nice diagnostic utility [3] that can help you identify the most common problems.

Alternative client are coming along nicely now, as well. For the longest time, encryption support was missing from the major ones (with "solutions" like running a pantalaimon instance in the mean time), but e2ee support has been added to most clients now. The only fully-featured client without encryption support I've come across has been GNOME's Fractal. On mobile, Fluffychat [4] has been working well for me, and on desktop Element [5] has been working well, too.

TL;DR: go to https://app.element.io/#/register, pick a username, and give it a try in your browser. You can join a bunch of the bridged IRC servers to get a feel of the conversation flow if you have no contacts on Matrix.

[0]: https://matrix.org/hosting/

[1]: https://github.com/spantaleev/matrix-docker-ansible-deploy

[2]: https://github.com/matrix-org/synapse/blob/master/INSTALL.md

[3]: https://federationtester.matrix.org/

[4]: https://fluffychat.im/en/

[5]: https://element.io/get-started

It appears the Beeper service by default runs on the beeper servers, with a subscription fee, yet I see there is a solution one can run locally https://github.com/spantaleev/matrix-docker-ansible-deploy

Does anyone have experience running the open version on their machine? (self-hosted)

For those interested in self-hosting the home server, I would recommend https://github.com/spantaleev/matrix-docker-ansible-deploy - the documentation is fantastic and it’s very well maintained.
this is a really cool project, and a great curation effort. there are ansible scripts which they recommend for self-hosting: https://github.com/spantaleev/matrix-docker-ansible-deploy -- most of the bridges (mirrored to their GitLab org) appear to be unmodified from upstream.
At the moment, it is me and a handful of other tech friends who are setting up servers of their own.

We've been installing things manually to test out different parts, but I think I'll be switching to a docker setup this weekend (purely for ease of setup)

https://github.com/spantaleev/matrix-docker-ansible-deploy

There are all sorts of bridges and bots:

https://matrix.org/bridges/ https://matrix.org/bots/

Once I have it roughly figured out, I'll look at paying to get some redundancy sorted, and then stick to this as my communications going forward.

Don't know about communick, but this https://github.com/spantaleev/matrix-docker-ansible-deploy is super easy to setup and supports all the bridges I ever needed.
If your IT group is alright with docker, the matrix-docker-ansible-deploy[1] is excellent quality and very quick and easy to setup/manage.

[1]: https://github.com/spantaleev/matrix-docker-ansible-deploy

I'm interested to see how they handle the Facebook messenger bridge since FB seems to rather aggressive about the bridge from logging in.

I've been running Tulir's bridge [0] for a few months now and my Facebook account gets locked out every week or so (requiring unlocking and a new password).

EDIT: Looking at the code, they use Tulir's bridge as well. I'd be..cautious about claming production level support with it due to the afore mentioned logout issue. Which is a shame since all of Tulir's bridges are high quality.

The bridgebox repo appears to be a bunch of bridges in docker containers. I wonder if it's really worth running the bridgebox and not a homeserver, versus using matrix-docker-ansible-deploy [1]. You already need the VPS space.

[0]: https://github.com/tulir/mautrix-facebook

[1]: https://github.com/spantaleev/matrix-docker-ansible-deploy

If you don't want to pay, you can always spin up our entire system on your own server. One way is to use Matrix-Docker-Ansible https://github.com/spantaleev/matrix-docker-ansible-deploy It is finnicky though. If you promise to give me good feedback and bug reports, sign up for the beta and I will waive the fee though!
I used this Ansible playbook [1] on a Digital Ocean droplet. Very easy to configure, fully-featured.

[1] https://github.com/spantaleev/matrix-docker-ansible-deploy

For messaging, I highly encourage people to use matrix.org.

For tech savvy people it's really easy to self-host https://github.com/spantaleev/matrix-docker-ansible-deploy and the good part is that you can set up bridges to telegram, whatsapp, facebook, irc, discord, slack... So you can use those apps privately while waiting for people to switch to better alternatives (which may never happens sadly).

Bonus: the desktop app is a rather lightweight web app usable in browser, so goodbye RAM eating monsters like slack and discord.

If you don't mind Docker, I success this ansible playbook: https://github.com/spantaleev/matrix-docker-ansible-deploy

Great documentation and sane defaults. I have only 6 lines of custom config.

For selfhosting with lots of bridges, the best bet is https://github.com/spantaleev/matrix-docker-ansible-deploy. Is this what you tried?
Being similarly frustrated with how complicated it is to set up, I've created an Ansible playbook to automate it all (and run all services in containers): https://github.com/spantaleev/matrix-docker-ansible-deploy

By default, it sets up Synapse and a bunch of other services around it that are necessary to really make it useful (Postgres instead of the default under-preforming SQLite; mxisd as the identity server; STUN/TURN server for WebRTC calls; riot-web; various bridges; etc)