Trying to figure out the best way to set up a self hosted matrix server.

ludicolo@lemmy.ml to Selfhosted@lemmy.world – 45 points –

I have been trying to set this up for the past 2 days and I am losing my mind.

The issue I seem to be having is that synapse cannot find the necessary postgres information in the the database. I have been trying to setup a docker container for it but to no avail. The container just continues to restart. When I check docker logs it seems like it cannot find the database info it needs but its there. I deleted the sqlite3 info so it most certainly isn't still using that.

Is there possibly a casaos friendly version of matrix? Is there an easy to follow tutorial for docker matrix and duckdns? Any help would be appreciated.

19

I've had good luck with Yunohost in the past for a synapse server.

I heard conduit.rs has lower memory requirements. Dunno if there's a easy to deploy container tho. Good luck!

If the postgres container doesn't start properly, then something's wrong with the config. Most likely you are trying to expose port 5432 to the host network, but you have postgres already installed there, so the ports conflict.

You can check for those errors with journalctl.

I prefer Conduit instead of Synapse - it is lighter on resources.

I’ll second conduit. You can tune up its caching, reducing the ram usage significantly. It does become a bit painful to sync the mobile clients, but at least it's not gigabytes of ram wasted.

How would I go about using conduit instead of synapse for matrix?

Here is the Conduit Docker deployment guide.

https://famedly.gitlab.io/conduit/deploying/docker.html

I started with the Docker Compose file they provide, and "translated" it into Podman rootless containers for my server. Even with adding the extra work, it was pretty painless.

I wrote my own ansible role to deploy/maintain a matrix server and a few goodies (element/synapse-admin). If you're not using ansible you should still be able to understand the deployment logic by starting at tasks/main.yml and following includes/tasks from there.