this post was submitted on 11 Feb 2026
104 points (96.4% liked)

Selfhosted

56580 readers
532 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

  7. No low-effort posts. This is subjective and will largely be determined by the community member reports.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

My friends are open to leaving Discord which has finally given me a reason to look into Element/Matrix. I found the install instructions and am immediately put off. Is this it? No official docker compose? 😞

top 50 comments
sorted by: hot top controversial new old
[–] vane@lemmy.world 7 points 6 days ago* (last edited 6 days ago) (1 children)

If you're proficient it's 30minutes

Something like this for server.

generate config

docker run -it --rm \
    -v <your-data-path>:/data \
    -e SYNAPSE_SERVER_NAME=<your-public-address-subdomain> \
    -e SYNAPSE_REPORT_STATS=no \
    matrixdotorg/synapse:v1.136.0 generate

run

docker run -d \
  --restart=always \
  --name synapse \
  -e SYNAPSE_REPORT_STATS=no \
  -v <your-data-path>:/data \
  -p 8008:8008 matrixdotorg/synapse:v1.136.0

register user

docker exec -ti synapse register_new_matrix_user http://localhost:8008/ -c /data/homeserver.yaml -u <username> -p <password> --exists-ok

Proxy it using ex. openresty / nginx

location / {
        proxy_pass    http://127.0.0.1:8008/;
        proxy_http_version 1.1;
        proxy_set_header    Upgrade         $http_upgrade;
        proxy_set_header    Connection      "upgrade";
        proxy_set_header    Host            $host;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-for $remote_addr;
        proxy_connect_timeout 600;
        proxy_read_timeout 86400;
    }

For UI if you want element on your domain, download and unpack tar.gz from.
https://github.com/element-hq/element-web/releases

Point this location to your proxy server ex. openresty / nginx

location / {
        root /opt/element-v1.11.109;
        index index.html;
    }

Modify config.json inside /opt/element-v1.11.109 to point location to <your-public-address-subdomain>

By default it's using sqlite if you want postgres or other database then modify homeserver.yaml to use postgres

[–] captcha_incorrect@lemmy.world 8 points 6 days ago (1 children)

If you like compose files: https://www.composerize.com/

docker run -it --rm -v <your-data-path>:/data -e SYNAPSE_SERVER_NAME=<your-public-address-subdomain> -e SYNAPSE_REPORT_STATS=no matrixdotorg/synapse:v1.136.0 generate:

name: <your project name>
services:
    synapse:
        stdin_open: true
        tty: true
        volumes:
            - <your-data-path>:/data
        environment:
            - SYNAPSE_SERVER_NAME=<your-public-address-subdomain>
            - SYNAPSE_REPORT_STATS=no
        image: matrixdotorg/synapse:v1.136.0
        command: generate

docker run -d --restart=always --name synapse -e SYNAPSE_REPORT_STATS=no -v <your-data-path>:/data -p 8008:8008 matrixdotorg/synapse:v1.136.0:

name: <your project name>
services:
    synapse:
        restart: always
        container_name: synapse
        environment:
            - SYNAPSE_REPORT_STATS=no
        volumes:
            - <your-data-path>:/data
        ports:
            - 8008:8008
        image: matrixdotorg/synapse:v1.136.0

[–] vane@lemmy.world 2 points 6 days ago (1 children)

I don't like compose files :)

[–] captcha_incorrect@lemmy.world 1 points 5 days ago (1 children)

How do you manage your containers?

[–] vane@lemmy.world 1 points 5 days ago* (last edited 5 days ago)

I have a git repo with some directory convention and bash scripts. Ex stop is just

#!/bin/bash
name=synapse
docker stop $name
docker rm $name

etc. depending on what actions I need to do against container I have bash script for that and if I need to perform same action against other container I just copy paste this file and change name variable. I pull this repo to my containers host and just type ./bin/synapse/stop and I stop synapse.

Hope that makes sense.

[–] KarnaSubarna@lemmy.ml 4 points 6 days ago
[–] Decronym@lemmy.decronym.xyz 3 points 6 days ago* (last edited 4 days ago)

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
CSAM Child Sexual Abuse Material
Git Popular version control system, primarily for code
HTTP Hypertext Transfer Protocol, the Web
IP Internet Protocol
LVM (Linux) Logical Volume Manager for filesystem mapping
SSL Secure Sockets Layer, for transparent encryption
TLS Transport Layer Security, supersedes SSL
VPS Virtual Private Server (opposed to shared hosting)
XMPP Extensible Messaging and Presence Protocol ('Jabber') for open instant messaging
k8s Kubernetes container management package
nginx Popular HTTP server

9 acronyms in this thread; the most compressed thread commented on today has 4 acronyms.

[Thread #85 for this comm, first seen 12th Feb 2026, 01:20] [FAQ] [Full list] [Contact] [Source code]

[–] melroy@kbin.melroy.org 3 points 6 days ago
[–] bridgeenjoyer@sh.itjust.works 1 points 5 days ago (1 children)

Element has no gif keyboard just so you're aware. Huge dealbreaker.

[–] EncryptKeeper@lemmy.world 0 points 5 days ago (2 children)

I’ve never encountered a gif keyboard that worked well so no big loss.

[–] CarstenBoll@feddit.dk 3 points 5 days ago (1 children)

My keyboard on android has one anyway, so I don't need a built-in one.

[–] bridgeenjoyer@sh.itjust.works 1 points 5 days ago (2 children)

But what about on PC? We mostly chat on pc..

[–] CarstenBoll@feddit.dk 2 points 5 days ago

I do wish they had a decent gif keyboard, but it seems they are against implementing it due to security concerns. I accept that.

[–] CarstenBoll@feddit.dk 2 points 5 days ago

Well, then I do without 😊 or Google some gifs.

I mean, discord gifs work perfectly...and my friends rely HEAVILY it.

[–] msokiovt@feddit.online -5 points 6 days ago

If you decide to do this, make sure you block matrix[dot]org, as they host and share a lot of CSAM on that homeserver.

[–] Shimitar@downonthestreet.eu 32 points 1 week ago (4 children)

Forget about synapse and the "official" method. Install Continuwuity a matrix server written in rust, much much more efficient than synapse.

I took some notes while installing it here https://wiki.gardiol.org/doku.php?id=matrix%3Aconduwuit

I didn't use docker but directly installation is very easy, it's a single executable.

[–] x00z@lemmy.world 2 points 5 days ago (1 children)

You are recommending to follow your wiki article but it claims to not use it?

Note: Sadly, Conduwuit project has been abandoned by the current devs and archived. Conduwuit is deprecated, the following instructions are left for historical reference only, DO NOT FOLLOW.

Now I don't know what to believe.

[–] Shimitar@downonthestreet.eu 1 points 5 days ago (1 children)

Yes need to fix that wording its a leftover, done.

[–] x00z@lemmy.world 1 points 5 days ago (1 children)
[–] Shimitar@downonthestreet.eu 3 points 5 days ago (1 children)

Continuwuity was never discontinued, the note was for Conduwuit, I forgot to remove it after updated the article.

[–] x00z@lemmy.world 1 points 4 days ago

Oh I see. Thanks.

[–] epyon22@sh.itjust.works 3 points 6 days ago

Oh man I need to look into this synapse is so slow

[–] Eldaroth@lemmy.world 2 points 6 days ago (1 children)

I saw you recommend Continuwuity on other posts as well. Was just wondering, what made you choose Continuwuity over Tuwunel?

I am asking because I used to host a Continuwuity Matrix Server until a year ago. Recently started to look into hosting a Matrix server once again and found that Tuwunel seems currently ahead of Continuwuity in regards to WebRTC (Element Call) implementation and the sliding sync thingy.

At least they have updated documentation when it comes to WebRTC and how to set it up.

I also installed tuwunnel after conduwuit death. Moved to Continuwuity because of the community vs corporate sponsorship.

I don't keep an eye on who is ahead, but I want to be sure I don't have to migrate in the future so I don't care for development speed, rather continued support and what if tuwunnel company money runs out?

[–] a_fancy_kiwi@lemmy.world 5 points 1 week ago (2 children)

I’ll look into it, thanks.

I’m still in the information gathering phase. Do you know if the element client works with the continuwuity server? Is it as easy as entering the domain, user, and password in the client?

[–] 30p87@feddit.org 4 points 6 days ago

Any client should be compatible with any server, if both are fairly up to date. Though, I never found a client nor server that are actually fully feature complete. The closest to that are synapse and element

Yes both element and elementx and actually any matrix client. That's the beauty of having standards

But its a pain because all clients from matrix. Org will push you to matrix. Org and need manual taps&clicks to select a different server when you sign up the first time. A bit annoying IMHO and maybe even fraudolent.

[–] litchralee@sh.itjust.works 21 points 1 week ago* (last edited 1 week ago) (1 children)

Firstly, I wish you the best of luck in your community's journey away from Discord. This may be a good time to assess what your community needs from a new platform, since Discord targeted various use-cases that no single replacement platform can hope to replace in full. Instead, by identifying exactly what your group needs and doesn't need, that will steer you in the right direction.

As for Element, bear in mind that their community and paid versions do not exactly target a hobbyist self-hosting clientele. Instead, Element is apparently geared more for enterprise on-premises deployment (like Slack, Atlassian JIRA, Asterisk PBX) and that's probably why the community version is also based on Kubernetes. This doesn't mean you can't use it, but their assumptions about deployments are that you have an on-premises cloud.

Fortunately, there are other Matrix homeservers available, including one written in Rust that has both bare metal and Docker deployment instructions. Note that I'm not endorsing this implementation, but only know of it through this FOSDEM talk describing how they dealt with malicious actors.

As an aside, I have briefly considered Matrix before as a group communications platform, but was put off by their poor E2EE decisions, for both the main client implementation and in the protocol itself. Odd as it sounds, poor encryption is worse than no encryption, because of the false assurance it gives. If I did use Matrix, I would not enable E2EE because it doesn't offer me many privacy guarantees, compared to say, Signal.

[–] mlfh@lemmy.sdf.org 16 points 1 week ago

This quote from your link on the main client e2ee issues captures the zeitgeist of modern tech so beautifully:

Please keep in mind that this website is a furry blog, first and foremost, that sometimes happens to cover security and cryptography topics.

[–] olorin99@kbin.earth 11 points 1 week ago (1 children)
[–] motruck@lemmy.zip 2 points 6 days ago

This is even the recommended way. If. You are rolling your own docker images for all the supporting containers you are going to have a bad time. OP I guarantee if you see this and shrug it off you'll be back here. Many migrated to this from their custom docker set ups.

[–] ranslite@pie.dasneuland.de 7 points 1 week ago (1 children)

Or try yunohost. Once installed yunohost is managing ssl, domains, install and update matrix and other things if wanted.

[–] nykula@piefed.social 3 points 6 days ago

Yes, setting up YunoHost on a new Debian VPS was a couple of commands, and having it install Synapse and Element was a few clicks in the UI plus a lot of waiting.

However. I thought of Element as an alternative to Slack or Telegram the way OP thinks of it as an alternative to Discord. I was wrong. Element competes with IRC. This is the only platform from which I've seen actual groups of people (FOSS projects) switch to Matrix. I think Matrix focuses on different usage needs than Discord, and trying it with willing Discord users will be an interesting exercise in seeing what perspectives they bring and what issues that raise, but the solution to their problem will be somewhere outside Matrix, and it will be in somewhat distant future, not with the current state of FOSS tools.

[–] scrubbles@poptalk.scrubbles.tech 5 points 1 week ago (1 children)

I completely support you moving off of Discord, and I completely support you setting up Matrix. I tried a lot, I think it has the most feature parity. That being said, the biggest thing I regret when setting it up is that I went with Synapse for my backend Matrix server, when there are others.

I've heard very good things about Conduit (https://conduit.rs/), mostly that it's easier to stand up and easier to maintain.

Either way, I think it's a smart move, and it's worth the investment. It's not the easiest to stand up, but operationally our communication should be our own. Expect trial and error, getting one piece up and running, then the next, and then the next. Celebrate small wins like "Today I got it running" and then "Today I got federation working", and then "Now I have voice working!". Otherwise it's going to feel overwhelming.

I believe in the cause, so feel free to DM me if you have any questions, or send me a DM on Matrix :)

Oh, and a very useful tool - https://federationtester.matrix.org/

This will tell you exactly what is wrong with your federation.

[–] ProdigalFrog@slrpnk.net 3 points 5 days ago (1 children)

I tried a lot, I think it has the most feature parity.

Have you tried Movim? It has most of the essential features, like group video calls, screen sharing, and a better E2EE method than matrix (IMO, anyway). It's also much easier to set up and host since it uses XMPP.

My friend group has already moved to Matrix, and we've been happy

[–] atzanteol@sh.itjust.works 5 points 1 week ago (1 children)

12 pages of detailed documentation

Home Gamer: Is this it?

[–] a_fancy_kiwi@lemmy.world 5 points 1 week ago

Fair criticism. I just don’t have a lot of free time. I can invest in Element but I wanted to crowd source information to see if it was worth it or if there was an easier way. It doesn’t get much easier than Docker

[–] artyom@piefed.social 2 points 1 week ago (1 children)
[–] Shimitar@downonthestreet.eu 5 points 1 week ago (1 children)

Tuwunnel is a corporate-sponsored successor to Conduwuit.

I prefer Continuwuity which is a non for profit successor to Conduwuit.

Beside this, they are probably mostly the same

[–] artyom@piefed.social 3 points 1 week ago* (last edited 1 week ago) (3 children)

Which corporation sponsors Tuwunnel?

[–] Shimitar@downonthestreet.eu 2 points 6 days ago (1 children)

That is undisclosed but check the github page, last time I did, it was a one person job and he clearly wrote he got corporate money t do that

For what it's worth, it sounds like it's corporate sponsored rather than corporate owned, which is at least a little better in my opinion

load more comments (2 replies)
load more comments
view more: next β€Ί