As far as I understand it currently people host their own Lemmy instances just for the hell of it or out of the goodness of their heart
But the larger instances will end up costing more money and I’m doubtful that will be sustainable with no income
Alot of the larger instances have user donations set up so that the servers can be maintained, this is how lemmy.world works
I really like the overall concept of Lemmy, so I decided to set up lemm.ee to support the Lemmy network with my skillset. I have previously had the privilege of being responsible for running large platforms online (end-to-end, everything from operations to software engineering), and so far, this experience seems to be extremely relevant for running Lemmy in its current state.
As for paying for hosting, my initial plan was to to just pay for everything myself as kind of a hobby, but the userbase at lemm.ee has been very gracious in first asking me several times to share costs, and then actually sending money once I set up donations. I’m not sure yet if this donations-based funding will be sustainable, or if it will fall off after the initial hype dies, but for now it’s really awesome to see that there are several other people who believe in lemm.ee and want to share financial responsibility for it.
I decided to host my own because I was on lemmy.world and we got blocked by beehaw, which had many of the communities I wanted to be a part of. I run mine on a server that’s in my house, so the only thing I’m paying for is electricity. And I have solar panels.
How difficult is it to host your own instance? Can you still use apps like Connect with it?
It was really annoying to set up if I’m being honest. If I hadn’t taken classes on Docker, I would have never figured it out. Luckily they have been improving the process recently. It already much easier now than it was a week ago. Hopefully by the next major release it is easy peasy.
I’ve loved the idea behind Lemmy since I first discovered. At first, I was using lemmy.ml, but then I saw the opportunity to provide a nice space and expand my sysadmin skills. Since there was no Portuguese instance yet, I thought why not create one?
Since then, I’ve met more people hosting Portuguese services and it has been great :DFor funding, I’m working on two ways: the typical donations and trying to secure support from local FOSS organizations. At the moment, the server costs are not prohibitive and there have been some donations already. I’ve also been talking to some of those orgs and it’s going well :)
I don’t see why an instance couldn’t go with ads and subs or awards the same way Reddit does.
I started !programming.dev because I am a moderator of several 100k+ subs over on Reddit and I didn’t want my communities to not have a place to go if Reddit crashed and burned (even though it’s incredibly unlikely). The main sub I moderated (/r/ExperiencedDevs) for years wanted user verification to combat the spam that was newbies commenting and posting about things they didn’t really know or understand. This will be possible to actually implement on Lemmy, whereas reddit was closed source, and didn’t really care about their communities.
I am also a strong supporter of pulling control away from megacorps. We need more small to medium sized businesses on the planet.
For selfish reasons? I wanted to work on something new and have true ownership over it, the ability to build a community that worked together to build something without capitalism standing in the way. It might seem strange, but one of the first things I did was bring multiple other people on board to help me maintain the server, even going so far as to add domain managers to the domain name. This was all to counter the major questions people were asking around “what if the host decides they don’t want to host anymore?”. Well hopefully the programming.dev community is willing to take that burden if the time ever comes, even though I hope it doesn’t. I also wanted to start something similar to a coop, where ownership is shared, meaning users have incentives to make the platform better. I have lots of ideas around this, but this will never be possible on Reddit. It is quite feasible here.
I also had the chance to buy an incredibly dope domain name! https://programming.dev! Why wouldn’t I jump at that chance? And I get to even use it instead of let it flounder. So many reasons to host something like this, to build a trusting community, a safe space to have to let people talk about a shared love/topic/hobby.
Honestly the domain name is a fantastic choice; Much easier to feel comfortable sharing links to my colleagues from programming.dev than something like “shit just works” or “lemmy world”
I want my own space in the internet and I set aside money for it monthly from my paychecks
I host my own because it’s cheap, less than 10 dollars per month, and I wanted to contribute to the growth of the Lemmy community.
Also turns out that it’s another benefit to this: I don’t have to get involved in the entire political debate of who federated with who. I just subscribe to communities I want anywhere.
Since devices that compute generate heat, it is a good way to hear your home up in the PNW. Additionally, you get to host websites. Everyone wins.
Better if you mine crypto, cuz any profit is just extra. You get the same results as if you were using a wall heater but you also get something in return.
Also (in theory) you can stick a VPN in front of it to hide your home IP to prevent DDoS attacks etc.
Right but if you’re using a mini split you’ll get much greater efficiency for the heat.
I host my own. Specifically for myself and those who are friends or friends of friends.
I have a cluster of servers operating in my garage. Free real-estate for tons of stuff I want to host. I have to “pay” for electricity… the rest was already paid for long ago. My electricity cost for my whole cluster… is an estimated $1750 a year. But that cluster is 160 CPU cores, 750 GB of RAM, and ~400TB of storage. You ain’t getting that on a cloud hosted provider for $145 a month. About $110 of that is subsidized by my business operations. I host email, websites, nextcloud, plex, etc… boatloads of stuff.
You offer paid hosting with hardware in your garage? I’m getting dot-com flashbacks!
I actually do… Yes… I have dual internet connections, dedicated power off both phases of my electricity with ~5 hours of battery backup, run redundant internal infrastructure (power, network, and server hardware)… I also have a massive backup library and am currently working on obtaining offsite backups solution. The whole site/house is also monitored with cameras.
I have better uptime than some datacenters in my area have which I can truthfully quantify that as I also hold a CIO/CISO position in another company that operates out of a major Datacenter in my area.
Edit: Should clarify, an offsite backup solution that ISN’T “just peer with backblaze or some other provider” to store your backups. I intend to do a rotating tape library. With one set of tapes always being off site.
Also to mention… I have better uptime than AWS-east at this point of the year… Although there will be some outages of my infrastructure here soon for a network hardware update. I suspect something in the order of about 1 minute of downtime total.
obtaining offsite backups solution
I read this as
Put servers in my mum’s garage
That would be why I added my edit :)
How does load balancing work across this fediverse… if at all?
What kind of load balancing are you thinking about/looking for?
If we look at Lemmy in specific…
Jobs that a server performs for users on it’s platform:
Login services(are you even you to begin with?)
Session Management (being logged in at multiple places, not mixing you up with other users…)
Subscriptions (what content to even show you… organizing them on the page… etc.)
Ban lists (and applying them to what you’re looking at)
Peering with the other platformsJobs that a server performs for off platform users: Sending ActivityPub messages to the other user’s platform.(effectively the same as “peering with other platforms” from above)
The idea is that the jobs that the server has to do for it’s local users is actually a lot more both numerically and in taxing tasks than the jobs that one particular instance has to do to send updates to the federated instances… A lot of the list in the first case is a boatload of SQL queries. The activitypub notification is effectively a broadcast of a relatively simple text that doesn’t take much bandwidth.
So let’s look at actual cases now that we have some ideas of what instances are doing.
I run a small instance, I have a few users (because I purposefully keep it small). If my users only ever interact with the fediverse through my instance, then other instances don’t have to do most of the jobs in the top list. I’ve taken that load from lemmy.ml or other bigger instances that my users would have ultimately migrated to if they didn’t have my server. The tradeoff is that my few users now cost the 1 connection for activitypub notifications.
Lets look at a theoretical “perfect” setup… 2,000,000 users across let’s say 1,000 instances. Evenly distributed. So each instance has 2,000 users. In that case, any given server would have to serve 2,000 people from the upper list and 999 activitypub broadcasts. This is significantly easier to do than have a single server try to handle all 2,000,000 users on a single instance serving nothing to the activitypub broadcasts.
There’s is one caveat with this… activitypub broadcasts will send everything that is subscribed… even if users don’t actually view it. So there could be some waste. This then leads to the discussion of well how many users until there’s a breakeven in cost of the first list vs the potential waste of the activitypub bandwidth. That answer is debatable… But most people agree that take the discussion seriously that the return on investment could be as low as 2-5 users. I think that the bandwidth cost outweighs the SQL (CPU, RAM, etc…) costs quite handily personally.
Other useful functions that occurs with this setup… As long as I got the ActivityPub message on my server… my users can see all of Lemmy.ml’s content. Regardless of if Lemmy.ml is actually running or not. We saw that with the downtime that some of the bigger servers are seeing, all the other instances could still consume the content… Just no updates were being sent.
This is relatively simplistic… I’ve skipped some nitty gritty stuff… I’ve simplified some other stuff. But this is the gist.
Edit: Other functions that you need to think about that lemmy is accomplishing for local instance users… Notifications, saved posts, language filtering, settings, profiles, avatars, reporting, slur filters, moderation, NSFW filters… The top list is actually considerably larger… like I said we simplified.