I’m interested in possibly hosting my own Lemmy instance - just for my own account. I was thinking of hosting it on Raspberry Pi (possibly the 1GB Pi 4 B), but I couldn’t find much for definitive information on what the hardware requirements would be for such an instance to know if this is even possible. How much storage is required? Is the Pi 4 CPU powerful enough? How much memory?
I’m not sure if it’s still valid, but Oracle Cloud Infrastructure (OCI) had a 4 vCPU, 24 GB RAM, 200 GB HDD free tier. No costs, ever! You could sign up there and setup an even bigger instance.
Ever? That sounds too good to be true. Especially with that much RAM.
-edit-
Oh wow, I see their always free tier and it’s true. Impressive!
Their free tier is prone to being shut down without warning, though.
It kinda is too good to be true.
True, but for playing around with lemmy and doing some test’s it’s ideal - and it’s free! In case you are serious about hosting a lemmy instance, there should be at least some sort of backup/ disaster recovery strategy in place.
On my $5 linode server with 1 gigabyte of ram and 1 CPU core, it runs okay. Storage will be my biggest issue, swap is always full, and memory usage is about 70%
Pi4 is powerful enough, barely. 1GB is too low, is there a 1GB Pi4? Thought it was 2GB min? Think recommendation is 4GB min, 8 better.
Storage is the real issue, it takes a lot a day, but it’s all based on unique communities subscribed on the server, so if you have 4 accounts all looking at the same 8 communities it’s the same as 1 guy looking at those 8 communities.
4GB/day for a lot of communities, obviously less for less.
There was a 1GB model at launch. The Pi foundation discontinued it when they dropped the price of the 2GB model.
My biggest concern with hosting it on a Pi is storage. SD cards are not made for write-heavy applications like Lemmy. If you want to host it on a Pi, I suggest adding a real hard drive over USB and configure Lemmy to use that for storage.
While I agree, it seems like OP only wants to house his account on his instance, and be federated so he can browse externally
I understand that, but his instance will get all the posts and comments he subscribes to, which will be written to the database every few minutes.
Please correct me if I am wrong, but this feels like a flaw with how Lemmy (perhaps other fediverse apps as well, I’m not sure) is designed. Why do I need to store all posts made to a community that one of the users on my instance subscribes to? Would it not be better to simply store my user’s posts, and comments, and the posts made to any communities hosted on my instance? Why do I need to store information from other instances, and users?
It would put the more popular instances under enormous stress, if they had to serve every single subscriber from any other instance. This would also kill the user experience. It’s much better to serve everything locally, so that an instance admin can scale their resources to the number of users on their instance, a number they know.
I actually am interested to see how the fediverse’s concept of federation scales out, as numbers keep growing. Even with just instances syncing between each other, I feel that this might be too much at a certain point.
It would put the more popular instances under enormous stress, if they had to serve every single subscriber from any other instance.
From what I understand, media (images, videos, etc.) is not cached. Does that not mean that, in the worst case where every post contained an image, the instance would be serving every subscriber, anyways?
For binary data that is correct, yes. But that is stuff an instance admin could choose to hide behind a CDN, as it’s easily optimized and cached.
If you, as the sole user, are not subscribing to dozens if not hundreds of communities, 1GB should be barely okay. As others have pointed out, it is storage that requires more attention with a Pi 4B.
it is storage that requires more attention
Please correct me if I am wrong, but this feels like a flaw with how Lemmy (perhaps other fediverse apps as well, I’m not sure) is designed. Why do I need to store all posts made to a community that one of the users on my instance subscribes to? Would it not be better to simply store my user’s posts, and comments, and the posts made to any communities hosted on my instance? Why do I need to store information from other instances, and users?
It’s caching posts from other servers so that if you have an instance with a few hundred or thousand people on it and they all open the home page you don’t send out thousands of requests for each post and end up DDOSing a bunch of other servers.
I don’t really understand this reasoning. Some server would still need to receive those requests at some point. Would it not be better if those requests were distributed, rather than pounded onto one server? If you have a server caching all the content for its users, then all of its users are sending all of those requests for content to that one single server. If users fetched content from their source servers, then the load would be distributed. The only real difference that I can think of is that the speed of post retreival. Even then, though, that could be flawed, as perhaps the source server is faster than one’s host server.
The data does get pulled, but only if it is “old.” If you just pulled 0.5 seconds ago, you don’t even need to check.
I’ve got a Vultr VPS with 1GB of ram with just Lemmy and a reverse proxy. RAM usage is right below 50% most of the time. I never looked when I first spun it up, so no idea how quickly usage is going up, or if it is going up at all.