this post was submitted on 07 Jul 2023
207 points (96.8% liked)

Selfhosted

39435 readers
4 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

v.0.0.6

v0.0.4 - Per requests and concerns: Defaults changed and options added to prevent overloading servers, hitting rate-limiting, filtering to top x communities, etc!

Thanks for your support!

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 17 points 1 year ago (2 children)

I was working on something like this to add a bot user and follow active communities but got distracted. Looks like I can quit that side project hahah

[–] [email protected] 10 points 1 year ago (1 children)

I salute your efforts for working on it anyway

[–] [email protected] 8 points 1 year ago* (last edited 1 year ago) (1 children)

ahah thanks, for posterity this is how far i got. Only needed to add the command to follow https://github.com/Death916/lemmy-federation-bot

[–] [email protected] 4 points 1 year ago

I'm happy to help or take PRs for lemmony. There is also https://github.com/Fmstrat/lcs which I didn't know about until well into lemmony.

[–] [email protected] 5 points 1 year ago (1 children)

No. Keep at it. More alternatives is betterer.

[–] [email protected] 14 points 1 year ago (2 children)

I wrote http://github.com/fmstrat/lcs a while back which does similar, but only grabs Top feed communities to reduce load.

[–] [email protected] 7 points 1 year ago (1 children)

I have been using lcs on another account for a small instance and it has been amazing for making the instance feel connected. Thanks!

[–] [email protected] 1 points 1 year ago

Glad it's working out for you.

[–] [email protected] 1 points 1 year ago

When I discovered, I felt bad for not checking. As for the load stuff. I intended and wanted to see All the things, and I don't currently have resource problems for my instance. :) We'll see how that fairs as things continue to grow!

[–] [email protected] 9 points 1 year ago (1 children)

For anyone who might know:

So if I'm understanding this right, the bot account you create for this is the one subscribing to every community, so it's known to the local system, right? As long as I'm not mixing up my main account and my bot account, there should be no observable change on my own account?

How is storage affected on this? If the bot account is subscribing to a number of communities across the fediverse, all that remote content is going to take up quite a bit of space, no?

And will 2FA be supported at any point?

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago) (1 children)

So if I’m understanding this right, the bot account you create for this is the one subscribing to every community, so it’s known to the local system, right?

Yes

As long as I’m not mixing up my main account and my bot account, there should be no observable change on my own account?

Correct, I have it functioning this way and it works great.

How is storage affected on this? If the bot account is subscribing to a number of communities across the fediverse, all that remote content is going to take up quite a bit of space, no?

It does and it will continue to grow. This not not something the tool takes care of, not cleaning up anything old or stale. Space management and "unfollow" is on the roadmap! Currently I can only speak for myself and it is EVERYTHING and it is about 0.25 GB / day of database, and 6-10 GB / day of images.

And will 2FA be supported at any point?

Not on the roadmap. I don't know how api calls in general work with 2fa since I have not tested or enabled it on my instance. :( Sorry.

EDIT: Changed database/pictures ratio after double checking actual numbers and not looking at used filesystem. :(

[–] [email protected] 2 points 1 year ago (1 children)

Hey, thanks for replying! Good to know about the subscription ownership. I only ran the discovery portion of the script just to dip my toe in the water, because I feared what would happen if I subscribed. That said, if I use the discovery flag, that's just exposing the different communities to my instance, right? It's not going to retrieve any remote content?

Good to see that storage management is roadmapped. I probably won't invoke the Subscribe side of this for my bot account until then.

Understandable about 2FA. I'll just be smart about my password usage and watch for any updates on that.

Thanks again!

[–] [email protected] 3 points 1 year ago (1 children)

It retrieves the last 10 posts and adds the community reference to your local database. It is the same as putting "[email protected]" in the search box and clicking search. The retrieval happens whether you look at the results or not.

[–] [email protected] 2 points 1 year ago

Gotcha. Well that was a miscalculation on my part haha. Good to know for the future, though.

[–] [email protected] 8 points 1 year ago* (last edited 1 year ago) (1 children)

Hosting an instance myself, I'm not amused, because if forces my instance to literally sync all content there is on the lemmyverse, drastically increasing traffic, storage use etc.

Please don't force resource consumption beyond any rational usage!

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago) (2 children)

people should just block Federation from "Lemmy.management" to start with. one less activitypub abuser.

[–] [email protected] 1 points 1 year ago

People can defederate from an instance for any reason they want, but if I get what you're trying to say: you think people should defederate from any instance that has a user that subscribes to all of their communities.

[–] [email protected] 8 points 1 year ago* (last edited 1 year ago) (1 children)

The script gets all of the publicly federated communities and "makes them known" to your local instance and then subscribes to them. "All" should be populated with activity from around the Lemmyverse.

Doesn't that significantly increase the load on your instance and, if many instances use it, all instances? This system isn't designed with the idea that each instance receives everything from every other instance.

It might be better to run this on a single dedicated site which people can come to to browse. If you could learn where each user had their account, you could send their upvotes, downvotes and comments to that instance.

[–] [email protected] -1 points 1 year ago (2 children)

It increases load during execution. Afterward it’s not significant. My instance is heavily instrumented and monitored. The load this incurs subscribing to 24000 communities is less than adding a single, moderately active user to your instance.

It’s a huge miss if the intended design was to silo information.

What this provides, as far as I’m concerned, is essential to prevent centralization to a few instances.

Is there a better way to do it inherently in Lemmy itself? Probably, and I am excited to help with that!

[–] [email protected] 7 points 1 year ago

It is a significant difference if an instance has to federate literally every post made on the lemmyverse.

[–] [email protected] 2 points 1 year ago (1 children)

Well that sounds quite reasonable then. It definitely answers a need for better discoverability of material on Lemmy. And it would be great if something like this could ultimately be integrated into Lemmy itself.

[–] [email protected] 2 points 1 year ago

I think your idea is on the right track when thinking longer term and assuming the worst case in both design and admin behavior. :)

The whole network needs to be split into "active" and "archive." New activity (or at the very least stubs to where new activity is happening) needs to be updated regardless of where it occurs without having to capture anything extra.

[–] [email protected] 8 points 1 year ago

Saving this for when I make my own personal instance.

[–] [email protected] 7 points 1 year ago

A clean up would be nice, maybe something where if there are no subscribers, or local user actions on a community (votes, comments) after a while it starts to remove them.

[–] [email protected] 4 points 1 year ago

This is a cool idea. I was curious how subs work and it makes a lot more sense to me now that I’ve spent the time getting my instance setup and read a ton of docs. It feels weird trying to build your list and communities on your own account, while it also populates your instance’s All list. Feels like all of my interests are just out there flapping in the breeze lmao.

[–] [email protected] 4 points 1 year ago

This seems pretty helpful, will spin it up soon and see how it goes.

[–] [email protected] 4 points 1 year ago (1 children)

If I've already run the last version recently is there a reason to run this new version immediately?

[–] [email protected] 1 points 1 year ago

Not really. If it worked before, it should work the same, just has more options for control and granularity.

[–] [email protected] 3 points 1 year ago (2 children)

Wouldn't doing this result in a massive amount of unnecssary load on the larger instances?

[–] [email protected] -1 points 1 year ago

Yes, it would.

load more comments (1 replies)
[–] [email protected] 2 points 1 year ago (1 children)

Dumb question I know, but do I leave this running on my instance or on my own computer?

[–] [email protected] 2 points 1 year ago

It doesn’t matter. Most of the work is happening on the instance, regardless of where the script is running.

[–] [email protected] 2 points 1 year ago (1 children)

So how does this operate now?

[–] [email protected] 1 points 1 year ago (1 children)

Sorry, by comparing now to what; or was as that a superfluous "now," like "come on now?"

[–] [email protected] 3 points 1 year ago (2 children)

Well the last one would have just mass Overloaded instances. Just wondering how this one operates differently to prevent that.

[–] [email protected] 6 points 1 year ago (5 children)

The relevant change is this: https://github.com/jheidecker/lemmony/commit/9b0b7232a1a942615eb67a34f2526328a23fcdd5

It's not meaningful though. It allows one to optionally limit to the top-n communities by active-user count, but the default is still unlimited and the docs still do nothing to explain the abusive load that excessive subscription puts on instances that host communities.

load more comments (5 replies)
[–] [email protected] 0 points 1 year ago

I think it depends on your instance. This version (same script, just updated) allows for more options IF your instance IS mass Overloaded, or you are scared it will be.

[–] [email protected] 0 points 1 year ago

During the weekend all my communities jumped to 20-30 subscribers, but no participation. I went to see if almost all of the new subscribers were some variation of this bot.

I mean it is not doing anything wrong, it just feels like a huge letdown to see that none of the growth was organic. Are people really creating instances just for the sake of lurking around? What is the point?

[–] [email protected] -2 points 1 year ago (2 children)

It increases load during execution. Afterward it’s not significant. My instance is heavily instrumented and monitored. The load this incurs subscribing to 24000 communities is less than adding a single, moderately active user to your instance.

It’s a huge miss if the intended design was to silo information.

What this provides, as far as I’m concerned, is essential to prevent centralization to a few instances.

Is there a better way to do it inherently in Lemmy itself? Probably, and I am excited to help with that!

[–] [email protected] 3 points 1 year ago* (last edited 1 year ago) (1 children)

Uhh... if your script is subbing to 24k remote communities, those will continue to grow from then on, unless you start purging communities at some point. After one user subscribes to a community, all new content gets indexed and stored on your instance. Pict-rs can cache images short term (and eventually clear them out), but Postgres will start growing very quickly and never slow down until it fills up disks.

load more comments (1 replies)
[–] [email protected] 2 points 1 year ago

Afterward it’s not significant.

Sorry, but unfortunately, it is, forcing a instance to sync literally every single post made on the lemmyverse.

load more comments
view more: next ›