- You host it yourself
- You can get a cool domain name
- It’s pretty low maintenance
DevOps as a profession and software development for fun. Admin of lemmy.nrd.li and akkoma.nrd.li.
Filibuster vigilantly.
As someone who hosts a bunch of other stuff already including my own email (because I am a madman), does stuff like this as a job, has developer experience, etc. it was simple.
Figuring each of these things out (and how they all work together) for the first time was a hell of a journey.
Asklemmy isn’t really a place to ask about lemmy, it’s for asking general questions to users of lemmy, jut like you wouldn’t ask for Reddit support in /r/askreddit.
Regardless, this question gets asked and talked about in the !selfhosted@lemmy.world community fairly often, here is a (slightly edited) comment I made a while back.
You will need a domain name, you can buy one from a registrar such as hover or namecheap (for the love of all that you consider holy do not use godaddy).
You will need a way to expose the server that you set up via port forwarding or similar on your network.
You will need to set up DNS records on the domain you buy to point to your home IP. You may want to figure out a different way to avoid just handing that information out, cloudflare can help with that. You will want to make sure the DNS records get automatically updated if your IP address changes, which is not uncommon for residential ISPs.
You will need to figure out how to get an SSL certificate, Let’s Encrypt will issue them for free, cloudflare gives you one if you use them as a reverse proxy.
Some of this would likely be easier to do on a cloud provider like digitalocean or linode and could be done reasonably cheaply.
These are all common things for setting up any website, so lemmy docs won’t cover them. In addition to those (this answer was just addressing “how to get a URL”) you will need to install and configure lemmy, lemmy-ui, postgres, and pictrs somewhere (the join-lemmy docs cover this well).
If you want your instance to send emails you will have to figure out how you want to do that (too many options to cover in this answer).
When 0.18.1 gets released if you want captcha you’ll probably have to figure out an mCaptcha provider or set that up yourself.
Not to mention thinking about backups, high availability, etc, etc.
As far as hardware to host on you could get away with like ~$10/mo on most any cloud provider, run it on a Mini-PC in your closet, etc. My instance uses 1-2 GB of RAM, ~13GB of disk (and growing a few hundred MB per day), and ~30% of a CPU (an old i5).
Best of luck.
They have been tuning the algorithm for that in the past releases, so may be related to that. Also, there is/was a bug where if you don’t restart lemmy (on the server) regularly stuff will get stuck at the top of hot and/or active.
Or if you just don’t want to give your “proper” phone number out to every single company out there to add to their spam list, sell on to anyone else, and give away for free every time they have a data breach. I use GV out of necessity for blocking spam calls.
Which is why (much to my chagrin as someone who has only given out their GV number for 10+ years) many companies are blocking numbers identified as VOIP even if they are capable of doing SMS/MMS, and some even go so far as to block prepaid phones. This was a component of that whole Overwatch 2 phone number controversy: not only were they requiring a phone number to play despite people’s battle.net accounts being years old, but they were also preventing some people from using their completely legitimate phone numbers.
My (not popular at all) instance has a philosophy that boils down to one thing: don’t ruin this for anyone else. Based on that it has several rules, including some that may end up in conflict with each other and some that are very subjective. Ultimately I run this server for me, and want a neutral as reasonably possible view into the fediverse.
I don’t plan on posting things that would piss anyone off enough to defederate (though everyone has different standards, so who knows on that one), and generally expect the same from other users-- especially if that user from my instance is interacting with a community or user from somewhere else. Interacting outside of the tiny confines of my instance means my users are representing my instance, I think it is completely fair to say “Don’t go to someone else’s house and piss in their cornflakes while telling them my address”.
On my instance itself I want communities that are welcoming to others, and hosting communities that make people want to ban my instance at first glance or on principle alone is antithetical to my core philosophy.
For communities or users many clients (including the default web ui) understand relative links, like [!asklemmy@lemmy.ml](/c/asklemmy@lemmy.ml)
or [@tymon@lemm.ee](/u/tymon@lemm.ee)
. The problem with these is that if instance the person reading your messages is on doesn’t know that user/community (because no one is locally subscribed to it or there have been no actions seen by that user) you will get an ugly 404 page with the only remedy being to perform a search for that unknown user/community/whatever manually. I think this issue is being worked on to make things more seamless, but IDK when this experience will be improved.
There is also technically no guarantee that any instance will keep track of non-local objects perpetually, so the “canonical” location of a thing is generally on the server that the user is based on. Posts and comments are referenced by a sequential ID that is different on every instance, so… yeah.
Technically there is a unique ID for every object sent through ActivityPub, so those may be linkable in the future with a similar scheme such as /post/288327 .ee
or something uglier like /post/https%3A%2F%2Flemm.ee%2Fpost%2F288327
depending on compatibility needs (as the IDs in ActivityPub are all full URLs to the source object)
Randomly stumbling across it, or finding it on e.g. https://browse.feddit.de/ or other search tools (which your community already shows up on) are the other ways I have found communities. Mostly that posts there though, honestly.
The New Communities Community: !newcommunities@lemmy.world
I totally forgot to mention Deev’s talks in my answer. I have watched most of them several times, and enjoy the different versions/twists on talks he’s given on elevators such as Elevator Obscura: Hacks and Curios in the Lift Industry vs Pit/Penthouse. Great stuff.
Bill Wurtz’s history of the entire world, i guess and its predecessor history of japan. They both blur the line of “documentary” a little, but are very good, and his music (beyond those videos) is also great.
Most any of Qxir’s or Plainly Difficult’s videos.
I could probably go on, but my nerd is showing maybe a little too much, and I watch way too much youtube.
Oh, one really important thing once you have Lemmy up and running is to make sure your instance is not set to open registration (have it closed or application-only), and if possible set it up to do email verification (which is a little complex since you need to set up your instance to send emails). There is a huge wave of bot signups happening. Captcha, application-based (or closed) signup and email validation were the only ways to fight back against this wave, and sadly the latest release of Lemmy removed the captcha feature as it was deemed ineffective and not friendly for accessibility reasons (e.g. vision impairments).
Yeah, regardless of your choice you’ll still need to buy a domain so I would do that first. Choose something you like, and look at all the fun different TLDs out there beyond just .com. Be careful though, some of them are trying to be exclusive so can be surprisingly pricey.
If you choose to do this relatively simply in a cloud provider… you can set up the domain to use their DNS servers (usually free) which would make things easier since most of the stuff you are doing for lemmy is all in one place. From there launch an instance (I would choose one of the ones priced around $10/mo and enable backups which costs another buck or two) and point your DNS at it. Then use the official ansible install method which will get you the rest of the way there, including taking care of the gruntwork of SSL/Let’s Encrypt.
There are all sorts of different ways you could do this to make your stuff more reliable in case the machine on the cloud provider, disks, entire datacenter (it happens) has a problem, but this is reasonably robust, especially for such a low price point.|
Again, if you have any specific questions or trouble, let me know.
I can’t say I have, but I basically only browse from my instance, so I may very well be missing out on things I could see on the instance the community is based on. I have noticed that .world and .ml are usually very slow to return results for my searches (as well as some other large instances like sh.it-just.works), and I have had trouble getting them to acknowledge my subscription (retrying a few times over a few hours or days works). I think this is basically because they are still overloaded, at least periodically. If .ml is slow to federate because it has lots of federation work to do and .world is failing to accept requests due to load that sounds like a recipe for sending of posts, comments, votes, etc. to have to retry over a period of minutes or hours, if at all.
If you are running your own instance it would marginally increase the federation load on e.g. .ml in the example above, but since the server you run isn’t overloaded you would most likely see things on your instance after .ml’s first attempt to send you the post/comment/vote/whatever. The ideal would be lots of medium sized instances that can handle the load so that there isn’t too much federation work to do (having only one user per instance would mean servers need to federate to thousands or even millions of servers, which would be a lot of work and bandwidth), but at the same time no single server would be too overload to handle the incoming messages either.
I probably can’t help much when it comes to TrueNAS, all of my experience is running it on Docker in Linux. AFAIK there is no plugin/jail for it out of the box, the easiest would probably to run a Linux VM on it and follow one of the official lemmy install guides using either Ansible or Docker (compose). I am sure you could figure out a way to install it from scratch in a jail, but that is beyond my experience with BSD.
In addition to the setup of the server itself you’ll want a domain, DNS, SSL and to figure out port forwarding (assuming your TrueNAS box is at home) at a bare minimum. Someone asked a similar question earlier and you can read a slightly longer response for these things in my response to them in !lemmy_support@lemmy.ml. I also suggest there that a cloud provider like digitalocean or linode would probably be more reliable and easier for some things and could be done (in a way that supports at least a small instance) on a budget of <$10/mo.
If you have any questions or want a more opinionated answer as to how I would set it up let me know.
Most of the why it is explained quite well in the instance’s sidebar:
We’re a collective of individuals upset with the way social media has been traditionally governed. A severe lack of moderation has led to major platforms like Facebook to turn into political machinery focused on disinformation campaigns as a way to make profit off of users. Websites with ineffective moderation allow hate speech to proliferate and contribute to the erosion of minority rights and safe spaces. Our goal with Beehaw is to demonstrate and promote a healthier environment.
Beehaw’s approach involves a fairly aggressive content curation policy for their instance. This includes defederating instances (which they have done 387 times so far). If you agree with their philosophy this isn’t a problem and is probably welcome vs a more laissez-faire attitude some instances have. They are also still very open compared to instances like Hexbear which runs Lemmy but has federation off (it looks like they are considering opening to some degree up at some point). They give two reasons for defederation in their docs:
First, if your instance houses or has a vast array of users that engage in hate speech, it gets added to that list:
We are simple with defederating: we do not allow hate speech, and we must consider our own limits when it comes to moderating. If an instance allows hateful speech or in our judgement has users who are too much for us to currently manage given the state of Lemmy, we defederate with it.
Second, some large instances (lemmy.world and sh.itjust.works) have been defederated because the burden on the admins and mods given current (incredibly primitive) tooling within Lemmy for moderation is too great even though the instance as a whole is not generally in violation of their hate speech policy. This is also a reaction to issues beyond the hate speech policy such as how users engage in the communities hosted on beehaw
The choice to defederate from an instance can also be based on our inability to effectively moderate that instance’s users. As of now, only two of our defederations are on this basis (lemmy.world and sh.itjust.works), and we hope to eventually refederate with both of them.
Finally, under the “inability to effectively moderate” justification they’ve preemptively defederated from instances that (likely mistakenly) had open sign ups and have had massive (likely bot) user growth. It seems they haven’t updated their docs to reflect this decision yet, though.
Given their philosophy I think this approach makes sense, but I absolutely understand why this pisses off some people who want more of a free-speech/wild-west in the fediverse. While someone may be free to speak everyone else is free to not listen. You have no obligation to engage with those you disagree with, as much as those people may want you to.
Hope this helps.
That’s the best part, it doesn’t!
You’re spot on, donations, or just people (like me) doing it out of the goodness of their heart for various reasons (free speech, desire for control/power, curiosity, boredom, lust for gold, being born with a heart full of neutrality, etc).
My server is mostly intended for me, but anyone who wants an account is welcome. My reasons are that I already run stuff on servers I have so cost is minimal vs what I would be doing anyway, I like having control over things I run (password manager, git server, etc), and based on some of the federation drama I saw in Mastodon (and has already happened here with beehaw) it’s a good idea to run your own server.
What if your SO stops beating you?