I previously (and sort of still do) ran my homelab on a Raspberry Pi 4B with 4GB of RAM. That lab still exists but I recently picked up an Orange Pi 5B with 8GB of RAM and have been building out my services from scratch.
This time I thought I would do it properly with a reverse proxy through Caddy and email notifications, neither of which I made use of before.
It’s improved my experience so much! Being able to access my services from beyond my network without necessarily having to be connected to my VPN is great. My goal is to spin up my own Mastodon and Lemmy instances but it’s sort of a bit daunting to work out hosting them inside of Docker like the rest of my services. If anyone has any good guides or suggestions I would be interested.
Also looking for suggestions on ways to add some mass storage to this setup, I previously used a Drobo 5N2 but a quick google will tell you the way that company went.
I've been wanting to do a pi lab myself someday, and your post is so encouraging! Were there any guides or other things you used to get going that you found particularly helpful?
I had a look through my bookmarks and found this great writeup. This goes into a lot of detail and talks about a lot of services which might be a bit confronting. Honestly, searching for smaller piece by piece guides for installing this service or that service and slowly building out your projects is a good way to go.
I ended up using caddy-docker-proxy because the vanilla Caddyfile method was giving me some trouble with my internal docker hostnames. This container just lets you add some labels to your other containers in your docker compose file and then works out the proxy for you, so long as you’ve made the appropriate DNS records.
Installing Mastodon on a Pi clone might be a bit too much. Mastodon can eat a lot of CPU, RAM and storage very quick. If the database is on an SD card, the card might died an early death due to huge amount of write cycles.
I thought this might be the case. I’ve seen people say a couple GB of RAM and a few cores is enough for it. It would only be a personal instance for myself and really no other users so I would hope the usage would be low?
As to the SD card situation I’m yet to do this but my plan is to move at least the OS and containers onto the 64GB of internal EMMC and then probably use an external SSD for some mass storage but I’m still not sure whether that’s the best way to do that.
I had been looking at buying a Dell server like a R720 but I just can’t fit that anywhere especially with the noise and the power draw isn’t great either…
If you have an external SSD, you can try it and see if the performance is acceptable. Mastodon is a Ruby on Rail app, which tend to use more CPU and RAM than e.g. Lemmy, but you might be able to tune down the resource usage by setting lower worker counts. Like I mentioned before, the biggest risk is running the database (postgresql) on a storage with limited write cycle lifetime (SD Card or eMMC), so if you have an external SSD, that should be good enough for postgresql as long as it's using USB 3.0 (don't connect it to a USB 2.0 port).