What does HackerNews think of matrix-docker-ansible-deploy?
Matrix (An open network for secure, decentralized communication) server setup using Ansible and Docker
[0] https://github.com/spantaleev/matrix-docker-ansible-deploy
Element is hardly b2b lol.
---
[0]: https://matrix.org/
A good starting point if you're tech literate is this:
Here it is: https://github.com/spantaleev/matrix-docker-ansible-deploy
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!
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
You can host bridges yourself too
https://github.com/spantaleev/matrix-docker-ansible-deploy/
Been hosting it alongside some bridges(like irc) for a while now.
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:
[1] https://github.com/spantaleev/matrix-docker-ansible-deploy
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
See https://www.beeper.com/ or https://element.io/element-one for a hosted product, or use https://github.com/spantaleev/matrix-docker-ansible-deploy to self host.
I grabbed this resource from Beeper's landing page: https://github.com/spantaleev/matrix-docker-ansible-deploy
Is that what you're using?
1: https://github.com/spantaleev/matrix-docker-ansible-deploy
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
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.
[0]: https://github.com/spantaleev/matrix-docker-ansible-deploy
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/
If you want to give it a try, this is what I used: https://github.com/spantaleev/matrix-docker-ansible-deploy
The benefit to hosting by a company is it should be more reliable.
It's very likely based on https://github.com/spantaleev/matrix-docker-ansible-deploy
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
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
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/
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
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.
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/
Does anyone have experience running the open version on their machine? (self-hosted)
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.
[1]: https://github.com/spantaleev/matrix-docker-ansible-deploy
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
[1] https://github.com/spantaleev/matrix-docker-ansible-deploy
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.
Great documentation and sane defaults. I have only 6 lines of custom config.
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)