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
    2 hours 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.

  • Reannlegge@lemmy.ca
    link
    fedilink
    English
    arrow-up
    3
    ·
    8 hours ago

    Don’t be stressing the pi out to much, maybe look into investing in more than 1 pi! I personally have had Jellyfin running on a pi 4, a pi 5, but it is currently running on a 2014 Mac mini (with Debian installed).

    I have 3 pi 5’s, one pi 4, and a pi 0 2, an old Mac mini running in my LAN, and a VPS running my simple blog and encrypted backups. Shuffling things around is a thing you do as your homelab and services expand.

    This hobby becomes an adventure.

    • rougeklaire@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      8 hours ago

      Thanks for the advice! That is some impressive setup! Yes I am sure my setup as well will grow more and more over time. It is an exciting, though challenging (at least for me) but for sure rewarding journey I’ve started.

      I have another Raspberry Pi 4 4GB I lent out to someone who is now not using it anymore. I could get that Pi back and run the Matrix server on there.

      If I may ask for your opinion: I am also considering to get Pihole up and running for a while.

      What do you think, would it be feasible to get Pihole running on the Pi 4 8GB that’s already running Jellyfin and Navidrome?

      The Matrix server with the Whatsapp bridge would then run on the seperate Pi 4 4GB.

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

        Pihole would be easy for a RPi 4. I’d also consider AdGuard Home which does the same thing, but has out-of-the-box support for encrypted upstream resolvers. I eventually moved on to Technitium for more advanced use cases (hosting my own domains, native config syncing between nodes), albeit it can use a bit more RAM.

      • Reannlegge@lemmy.ca
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 hours ago

        Pihole is runs on pi zero’s I am sure you would not have any problemswith running it on your pi 4’s. I have my primary pihole instance running on a pi 5 with a bunch of other things, my secondary pihole instance is running on another pi 5 that used to run ghost which hosts my webpage.

        I would say put pihole on both, also put unbound onto whatever one you decide is your main pihole. If you are going to get pihole and setup Matrix with the Whatsapp bridge may I suggest you get a firewall as well, something that you can flash OpenWRT onto. I have a Flint 2 that I have multiple vLANs setup on for security, but also a VPN so that I can have the benefit of all my services away from home. It is something that I wish I had setup a lot sooner.

        Of course you will need a static IP address for this, for me my ISP gives them out for free but I understand that it is expensive elsewhere. I do however hear there are apps that emulate static IP’s for things like wireguard to use.