Hi everyone,

I am new to self-hosting and this is also my first post on Lemmy. I have a navidrome instance for my music (installed via docker compose) and a jellyfin instance for movies and shows (also installed via docker compose) running on a Raspberry Pi 4 8GB. I know I could also use music over jellyfin but I prefer to have it in navidrome.

The next thing that I want to achieve on my journey through the world of self-hosting is to run my own matrix server. The ideal eventual goal would be to have my own server on that same Raspberry Pi which I can then use to bridge Whatsapp to so I finally can get rid of that App from my primary phone. Receiving Whatsapp messages is unfortunately necessary for me to keep contact with certain people, although I would prefer to get rid of it completely as well, but who am I telling that, there are plenty of people out there facing the same issue.

As Whatsapp needs to run somewhere, which is required to have the bridge properly working, it would ideally run in an Android Virtual Device although that is no requirement as I know physical phones are recommended and emulated devices get blocked more often.

Ideally, the matrix server would also be installed using docker compose. It is intended to have one user only which is me but should of course be able to communicate with other servers to enable me to talk to others. The main limitation is that all three services should be running on that Raspberry Pi at the same time.

As my experience regarding such a project is virtually zero, my questions are:

Is such a setup is feasible and generally a good or bad idea (considering running jellyfin, navidrome and matrix on one Raspberry Pi)?

What issues should I consider before starting such a project?

If there’s someone having a similar setup, what are your experiences?

Also important to note: The matrix server should be able to handle video and voice calls as well, not in large rooms of course, but rather in a context of 2 to 4 people max.

Any advice, information or personal experience is well appreciated! I want to properly inform myself before starting out and thought here might be a good starting point. If I forgot to mention any specific information that is needed please let me know.

Thanks a lot!

EDIT: Adjusted post title to better reflect the advise-seeking character of this post and adjusted question phrasing

  • stratself@lemdro.id
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    50 minutes ago

    Hi, as someone running their Matrix server on the same ware (using Continuwuity)I have some thoughts:

    • The bulk of the load is in federation with other homeservers. If you only run it in non-federated mode the resource usage would be minimal like a simple REST API server.
      • If you do enable federation on such a low powered device, consider performance tuning it. DNS tuning is the most essential one, and then you should allow it to use some more RAM than normal (increasing cache capacity)
      • Also if you enable federation, expect it to be the software with the most resource impact. I think usually Jellyfin and Navidrome only uses CPU when you’re streaming something, but Matrix may do a lot more background work because federation and so on.
    • Calls are handled by a separate LiveKit SFU, which uses WebRTC for most of its operations rather than HTTPS. So you cannot expose it using Cloudflare Tunnels, and you may run into issues forwarding/routing a large number of UDP ports as well.
      • I usually recommend renting a VPS for Livekit instead for simpler config and networking. But if you somehow get it working on the Pi itself as well it’d be great to know.
    • I used mautrix-whatsapp a long time ago for the bridge. It was good enough, but do note that it is just a stopgap solution to prevent social isolation. Its better to eventually move people to free protocols.

    I’d also like to rehash what the other commenter say in that you’d get much more juice out of a mini PC or some other non-embedded devices. This is for all your software anyhow.

    And yes, Continuwuity can run in docker compose. There’s a few example files for it on the site, feel free to check it out and ask in the support room.