Today is an exciting day for the Lemmy project.
Almost one year after first enabling federation, we now federate with other projects for the first time! According to some people’s definition, this finally makes us part of the Fediverse.
It took a lot of work to make this possible, so big thanks to NLnet for funding our full time work on Lemmy, and to @lanodan and @asonix for helping to figure out how Pleroma and Mastodon federation works (it’s difficult because they have almost no documentation).
Lemmy is similar to sites like Reddit, Lobste.rs, or Hacker News: you subscribe to communities you’re interested in, post links and discussions, then vote and comment on them. Lemmy isn’t just a reddit alternative; its a network of interconnected communities ran by different people and organizations, all combining to create a single, personalized front page of your favorite news, articles, and memes.
The rewrite of the federation code started by @nutomic in August is now mostly complete. As a result, the code is much cleaner, and has tests to guarantee no breaking changes between Lemmy versions. As a side effect of this rewrite, it was now relatively easy to enable federation with other projects.
Mastodon and Pleroma users can:
In addition, Pleroma users can exchange private messages with Lemmy users.
Note that Pleroma and Mastodon rely on a compatibility mode in Lemmy, which means that they won’t receive events like Deletes or Votes. Other projects whose federation works similar to Pleroma/Mastodon will likely also federate.
Lemmy finally has essential moderation tools (reporting, user/community blocking), so the hardcoded filter isn’t necessary anymore. If you want to keep using the slur filter, copy these lines to your config file when upgrading, and adjust to your liking.
If you installed Lemmy without Ansible, you need to edit the nginx config file to follow this example. Otherwise Mastodon won’t be able to fetch objects or actors from Lemmy. Ansible applies this change automatically.
No other changes are necessary for federation with Mastodon/Pleroma. Just make sure your allowlist/blocklist allows it. Then get started by searching the URL of a Lemmy user or Community in Mastodon.
Note that Mastodon and Pleroma are much, much bigger than Lemmy at this point, with a combined 3 milion users and 4500 instances, compared to 20.000 users and 35 instances for Lemmy (source). The existing mod tools in Lemmy might not be adequate to handle that at the moment.
Be aware that if you have federation enabled in the Lemmy config, Mastodon and Pleroma users can now fetch all posts and comments, to view them and share with their followers. The Lemmy blocklist/allowlist can not prevent this, it only prevents posts/comments from blocked instances to be shown on your own instance. The only solution to this problem is disabling federation, or waiting for signed fetch to be implemented.
If you want to use federation, but review new instances before federating with them, use the allowlist. You can switch from open federation to allowlist federation by pasting the output of the command below into
federation.allowed_instances in the Lemmy config.
curl https://your-instance.com/api/v3/site | jq -c .federated_instances.linked
additional_slurs field has changed its name to
Follow the Docker or Ansible upgrade instructions here.
We’ve now separated our ansible install method (the preferred way to deploy Lemmy) into its own repo, lemmy-ansible. Let us know if you need help migrating existing installations over to it.
GetUnreadCountin the API to check the count of your unread messages, replies, and mentions.
Feel free to announce new communities here.
Other than that, this is reserved for admin use only.
@dessalines you guys have a potential to be much more than just a link aggreagtor.
I maintain that anybody who makes a working, viable groups implementation that covers most of the Fediverse will define the direction of this network for the next five years.
You are the closest so far.
Lemmy has always been a link aggregator/forum, we dont have any plans to change it into something else. Federation with pleroma (and as a side effect, mastodon) was only one milestone of many. If there are problems, they can be solved on the mastodon/pleroma side just as well, maybe better.
@nutomic a problem of “umable to start a thread on Lemmy” can’t be solved on Pleroma.
Its not a problem in Lemmy, as other Lemmy instances can create threads over federation just fine. The problem is that Mastodon/Pleroma cant send the right data which Lemmy expects. And it doesnt make any sense for us to try and extract 4 fields (url, title, body, community) from the single text field that masto/pleroma send. So you should open issues in their respective repos instead. Below is the json format we expect, most of the fields are optional.
@nutomic Now, look. Implementing this feature on your side only requires effort on your part. Implementing it on everyone else’s side requires effort on the part of:
May be even
- Peertube and Funkwhale
And probably others. This is at least 10x more effort. Imagine coordinating this mess.
So you are suggesting that Lemmy should add ugly and unintuitive compatibility hacks for 9 different projects. Thats not going to happen. Our federation docs are here, if anything is unclear I am happy to talk with the respective developers.