

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


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.


Users are empowered to set what they want their default homepage view to be (“Subscribed” , “All”, or “Local”). I am unsure what the default is, but mine is set to “Subscribed” which I think it makes the most sense for most users.
Unless you are on a heavily moderated/defederated server (such as beehaw) whose moderation policies, politics, etc. you are aligned with it is very likely that “All” is going to contain something that someone doesn’t like. I am personally not in favor of over-policing what users do outside the confines of their home instance, it’s a fine line that I haven’t had to define too clearly yet so perhaps my thoughts here will change.
If you don’t like what’s in “Local”, then to me that is a sign that the instance isn’t for you. Local is a reflection of the sort of content that users on that instance want to see more of. The admin allowing such content is not necessarily an endorsement (unless they were the one to actually post it), but is tacit acceptance of that content and the community that content exists in.
I think some way to make a “Curated” feed of posts only from certain approved communities would be a welcome feature and present a useful middle ground allowing for a moderatable discovery experience, like the default subscriptions provided on that other site.

I think a lot of this comes down to an inherent problem with using the same protocol and objects to represent different things. In Lemmy users send a Create (of a post or comment) the instance that houses the community and the community sends an Announce to subscribers/followers of that community because it is a thing they care about, Mastodon interprets that as a “Boost”. Lemmy uses “Like” and “Dislike” for votes, which turns into a “Favorite” and (nothing?) on Mastodon. Lemmy uses Links not Notes because Lemmy is a link-aggregator that just happens to have the ability to link to a text post on lemmy itself.
I think there are some attempts at a more “universal” interface into the fediverse where you can choose to see a threaded/nested view like Lemmy or a stream-oriented microblog like Mastodon. At the moment there is no real solution as far as I can tell.


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)


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.


Perhaps I am a unicorn, but I have self-hosted my email for years and don’t have deliverability problems. The only problems I have had:
To me one of the big things that differentiates Lemmy (and the fediverse in general) from email is that most of it is public, so the things in email that would involve sharing someone’s private information (email addresses, IPs, email contents, etc) are public (at least the post/comment and username+instance), and can all be verified. I think there is a lot of potential because of this. Maybe I’m crazy, but I just really don’t like the idea of a whitelist-based system because it means I as a small instance operator may have to sign up to dozens of services like the one you are building. I want my instance to be able to federate pretty much as widely as possible, and to me such a burden is too much to ask within a system/protocol/fediverse that is designed to facilitate sharing and decentralization.
Also, I think there is already room for a problem with “capture”. What motivation is there for .world .ml or beehaw to bother signing up for your thing? Even assuming you get 100 like minded admins to sign up for Overseer that is probably a pretty small fediverse island without them, some or all “mega” instances will probably just end up getting a pass anyways and at the end of the day no system is in place to help with the problem of bot/spamming users on trusted instances (whether in that WoT or just blindly trusted by the WoT).
Most of the spam I get is from gmail addresses, I don’t see it going any differently here.


I agree that we need far stronger admin and moderation tools to fight spam and bots. I disagree with the idea of a whitelist approach, and think taking even more from email (probably the largest federated system ever) could go a long way.
With email, there is no central authority granting “permission” for me to send stuff. There are technologies like SPF, DKIM, DMARC, and FcRDNS, which act as a minimum bar to reach before most servers trust you at all, then server-side spam filtering gets applied on top and happens at a user, domain, IP, and sometimes netblock level. When rejections occur, receiving servers provide rejection information, that let me figure out what is wrong and contact the admins of that particular server. (Establish a baseline of trust, punish if trust is violated)
A gray-listing system for new users or domains could generate reports once there is a sufficient amount of activity to ease the information gathering an admin would have to do in order to trust a certain domain. Additionally, I think establishing a way for admins to share their blacklisting actions regarding spam or other malicious behavior (with verifiable proof) could achieve similar outcomes to whitelisting without forcing every instance operator to buy in to a centralized (or one of a few centralized) authority on this. This would basically be an RBL (which admins could choose to use) for Lemmy. This could be very customizable and allow for network effects (“I trust X admin, apply any server block they make to my instance too” sort of stuff).
I think enhancements to Lemmy itself would also address help. Lemmy itself could provide a framework for filtering and report when an instance refuses a federated message with relevant information, allowing admins to make informed decisions (and see when there are potential problems on their instance). Also having ways to attach proof of bad behavior to federated bans at an instance level, and some way to federate bans (again with proof) from servers that aren’t a user’s home instance.
Finally, as far as I can tell everything following a “Web of Trust” model (basically what you are proposing) has struggled to gain widespread adoption. I have never been to a key signing party. I once made a few proofs on keybase, but that platform never really went anywhere. This doesn’t mean your solution won’t work, it just concerns me a little.
I expanded a bit more on some of how email tooling could be used within lemmy in this comment as well. My ideas aren’t fully baked yet, but I hope they at least make some sense.
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.


I own sublime merge because it was cheap when I upgraded to ST4, but never use it. It’s not bad or anything, but honestly the CLI is more convenient to use (and all the GUIs I’ve used have a lot of clicking involved). I don’t know that you’re going to find something better than the CLI, especially given your requirement ow “comfortable to use with only a keyboard”.


Yeah, as I said IDK what device timelines are, but for some reason I can’t imagine apple not releasing an iPhone in the EU for 4 years… the charge port mandate was not super impactful/difficult for Apple to comply with. I am still not convinced Apple isn’t going to drop the charge port entirely in favor of their magsafe wireless thing (again, anti-consumer IMO), or at the very least will be putting out an EU-only SKU with USB-C.


2027 seems kinda weak sauce. Maybe it is more reasonable than I feel given I don’t know much about hardware design timelines, but I honestly was hoping for more of a middle finger to companies that have embraced the anti-consumer practice of using non-replaceable batteries.