Hello!
I’ve been thinking about hosting my own Lemmy instance, but wonder if there’s an easy way to federate with other communities/instances. I like to browse the “All” tab, but that tab would be empty on a self-hosted instance I imagine.
Is there a way to get all communities of certain instances in my All feed? Or do I have to search up each individual community manually once?
I don’t think there’s a way of doing this automatically at the moment.
With Lemmy’s API you could set up a bot that takes care of listing all the local communities on a remote server and then searching them from yours, which would make them appear in your search results.
But if you want the publications of this remote community to federate with your server, you need to have a local user subscribed to it.
I’m working on a Rust API wrapper around the existing common API to make it easier to use. Implemented the calls that could let someone do this exact thing at scale last night.
It’s nowhere near ready for production and is still missing a lot of basic API functionality even for a simple bot, but I think it’ll be ready to publicly release in an alpha state within the next couple days.
If you do happen to release an alpha publicly, please do be sure to post it somewhere here - I’d love to take a look at it!
I’ll keep you in mind when I do that. I’ve got some free time the next couple days to work on it, so I’m hoping to have something by then. So far the API calls I’ve implemented are
Search, ResolveObject, GetSite, GetFederatedInstances (Though it's basically GetSite), GetPosts, Login, ListCommunities
So, you know, pretty far from doing much practical work. But not bad at getting information about an instance. I want to at least have all the basic post/comment/community functionality in before I release anything. Also, I think I want to restructure what I have into a better format. Don’t quite like how I set it up.
That’s neat. Is the idea that the bot user would enumerate and then subscribe to the communities found through the Lemmy API?
Pretty much, that would force federation. Though I don’t think users in the other community would see your communities until someone from there searched one of yours.
An idea I have is giving small communities an option to run the bot on their instance, and it would add them to a list. Then, communities voluntarily participating in that list could auto-populate each other’s communities through the bot. I could see spammers abusing something like this to try and flood feeds with garbage content until they’re defederated though, especially on instances with open registration, so there is a downside. But that’s something the community of proper users will need to be prepared to fight down the road.
Yeah, that’s a slippery slope. I think that federating to receive content from an instance is fundamentally different than making your content show up on a instance that didn’t ask for it. I definitely see the value your implementation would bring to new/single-user instance to populate the feed. Good luck!
This sounds like a great idea
Ah, so someone needs to be actually subscribed to a community for their content to show up in All?
Alright I guess I’ll have to write a simple Bot that can do that for me then
If you’re comfortable with Python, you can try this out: Lemmy.py
I’ll give it a shot :) If I manage to make something useful I’ll share it
I also run a self hosted instance so I would be interested in a bot that stays subscribed to communities I want “synced” into my instance without me also being subscribed
I’d like something like this too, if you get somewhere please let me know!
My first thought was also to make a bot that does this, give it a list of servers and it subscribes to all communities on those servers.
Perhaps a subscriber limit, not subscribing to communities with less than X users might be useful. Not sure if that’s necessary though.
Haven’t gotten around to it yet, but I think the Lemmy API has everything needed to do that. If you want a second pair of eyes on the code, reach out!