Web Developer (I ❤️ PHP). Admin of remy.city kbin instance.

  • 4 Posts
  • 35 Comments
Joined 1 year ago
cake
Cake day: June 18th, 2023

help-circle
  • My kbin instance’s data (text data, that is) probably takes up less than 8 GB right now, and I’ve had it running about two weeks. Media storage (which I do through S3) is around 5 GB so far. Kbin does do media mirroring different than Lemmy though (I think), so YMMV. I think Lemmy mostly links to the original instance’s media object as the source.

    The main thing I found eating storage on my server was a lot of old Docker images (and volumes) from me trying to get everything up and running. If you are using Docker you could try doing a docker system prune --all to get rid of unused images/build caches (anything that isn’t running currently).







  • I think that would be worth it, yeah. Of course if you are hosting it on your home network there will be some added security concerns (and that might make it better to only allow signups to friends/friends of friends/etc). The way I see it is that some instances are going to host the largest communities, and therefore those instances are going to need to handle all of the incoming/outgoing updates to posts in those communities. Right now they can’t do that reliably and push updates out to all of their users’ devices.

    So in the long run I think having small/medium instances (say a couple hundred, not tens of thousands of users) will be the way to grow. These smaller communities can push updates to their smaller user count reliably, and then have more resources to handle federated content coming in and going out. I think scaling for the incoming/outgoing federation requests would be easier than for direct user activity. Federation stuff can be queued and then spread over time, but user requests cannot be.



  • This is the problem we are having with fast growth on a few select communities. The largest servers are being bogged down simply because the software has not been tuned for these large types of instances yet. ActivityPub works best (in it’s current state) by spreading users over smaller/medium sized instances. Folks need to take a look at other instances (and I agree it is hard to find them for a newcomer). You can look at https://fedidb.org/ to look at instances that have been indexed running kbin, lemmy, and other software.

    Joining a smaller instance means that your server is not being bogged down by tens of thousands of other users trying to pull updates at the same time. You can still see the content from other instances, and in many cases it is more reliable because your smaller instance actually has the resources to handle pulling in the posts you want to see. In the future I am sure instances like lemmy.world will be able to handle the traffic smoothly, but for now the best way to ensure stability is to join a smaller instance.

    (Plug for my instance: https://remy.city, a general purpose Kbin instance. I set it up for personal use but anyone is free to join me in using it. I have defederated from the more alt-right communities like lemmygrad and exploding-heads, and from lemmynsfw.com because of content hosting concerns. I’m open to suggestions on others.)



  • In your browser, if you go into the menu there should be something like ‘Install’, ‘Add to Homescreen’, something like that.

    On chrome it is add to homescreen, but there is also a pop-up at the bottom that gives an install button. The browser menu should be the easiest spot though.

    It creates a shortcut on your homescreen and allows the site to run in full screen mode, so it acts like a native app.







  • There are ways to write links in such a way that they should keep you on your instance, but I’m not too familiar with them. I wonder if it would be possible to “precheck” links that load on a page, and if any point to content that can be federated, kick off the process of pulling that content in. Then when the user clicks that link, it would take them to the content on their home instance, where they can interact. That way users wouldn’t need to deal with formatting links a certain way, it would just happen automatically (if your home instance software supports it).



  • The thing about federation is that every server basically copies any content that the users on it want to see. So if a comment/post is made on lemmy.world, lemmy.world sends out an update to every other server on which a user is subscribed to the thread/community/user. So each instance that has a subscribed user ends up having to process the new comment/post. If a Meta community came in with say, a million users, now every instance has to process the comments for all those users (that is, if folks on those instances want to see that Meta content).

    It is a bit inefficient, but it’s just the way a decentralized network has to function. I could see many people thinking that any time you open a thread, the data comes in from the originating instance, i.e. that your home instance doesn’t store the data you are viewing. It is unfortunately, and I think it will be a problem in the future as communities grow.


  • The problem is that if I want to communicate with Meta users, then my content gets copied onto Meta’s servers, just because of how the fediverse works. Everything is a local copy first, then gets federated. So if I reply to someone who is a Meta user, in order for them to see my comment it must get copied to Meta servers. The only way to stop this is to defederate with them (which means the server you are on would not send anything to Meta servers).


  • That’s a good breakdown, thanks! The bad thing is that I could see these issues happening even unintentionally, with the fact that we have a few large instances vs. many smaller ones. So far we seem to have everyone running the same code, straight from the repositories (at least functionality wise). For my own kbin instance though, I have technically changed things. I changed some code to make a custom logo appear nicely, I’ve added some padding here and there, etc. I have also thought about implementing an automatic job that clears posts tagged with ‘nsfw’ or other related things in the microblog feed.

    I might implement that, and then submit it to the kbin devs if it works well. There’s no guarantee that other admins/devs would do that as well. If they implement a feature that makes their community more popular, they would seem to have incentive to keep it private. And that’s where stuff like Meta comes in. If they implement rigorous content filtering, I doubt that would make it into the actual AP protocol. It would be the differentiating factor between using their ‘safe’ instance, vs. going rugged on an independent instance.

    They could say “we implement the ActivityPub protocol as specified” and they wouldn’t be wrong. They would just have some extras added onto the top to make their experience more polished. Easy to do when you are a for-profit and have plenty of devs. They would just argue that those are the features that make their interface different, like kbin and lemmy are different.

    The only way around it is for communities to agree that they will run the software as released, maybe with only cosmetic changes. Any improvements to functionality should be submitted to the devs so that the wider community can benefit.