Follow

@playground

About my group server implementation

Have you tried the group features now available in Fedibird and QOTO?

When I implement this group function on the server, I will write down the intended points.

Compatibility with the current implementation

The intent is for the current major ActivityPub servers (Mastodon, Pleroma, Misskey, and others) to be able to join the group without any special additional features.

At AP Conf, it looks like participants discussed what the group should be in a session. I’m sure it’s going to be great, using a new mechanism that the current implementation can’t handle. I’m looking forward to it! Here we want to provide a group that you can use right now until they become available.

Announce based delivery

By delivering with Announce, we will be able to handle participants from Pleroma who do not have LD Signature in Note, and for moderation purposes, we will be able to reject Announce and delete any post.

Also, my implementation forwards Create Activity before announcing from the group server.

If the members of the group belong to 100 different servers, up to 99 fetches will be made to the origin server for each post. Eliminate this fetch by forwarding Create-Note in advance.

However, this forward may not be accepted. Mastodon has just been changed to accept it from v3.2.0.
github.com/tootsuite/mastodon/

Group Discovery

You want to implement a group directory and search so that you can find useful groups on the server that uses the group. However, not all Group Actors are welcome to be discovered. You may be using the Group Actor simply for technical reasons, or it may be a secret group.

Therefore, I decided to use the discoverable flag of the Mastodon Actor. (This is a flag to allow listing in the directory)

Decentralization and Portability

The group requires a central server. This is currently unavoidable, so an alternative is to ensure portability. That is, you can use the account migration feature to transfer members to another Group Actor. Even if you do not agree with the abolition of the group server or the change of the operation policy, we will move everything to the new group server so that you can continue. Most issues have already been resolved with the Mastodon-based group server.

Delegating group discovery to each distributed server is a deliberate design.

@noellabo @playground Thank you so much for your contributions to make the group server possible. I’m not sure just how much of each of our contributions to the Group Server made it into the other person’s hosted server but even just beyond the group server your contributions have been significant, so I did try to make a few posts now recognizing that, as I want you to get due credit.

With that said I do want to point out that while fedibird group server and QOTO group server both share very similar approaches there are some significant changes to the QOTO group server that you may want to consider and if you arent already using the QOTO variant you may wish to use it or pull in our fixes/features as you see fit.

Here are a list of fixes/features I had made to the code base that differ from your own contributions.

  • Based off of v3.2.1 instead of v3.2.0
  • Fixed error/bug whereby in advanced mode a broken column was fixed in place and could not be removed producing errors (it was a leftover from the removed home timeline).
  • Automated it such that all new signups are group actors by default, before it would require a moderator to go onto the command line of the server and inject it into the DB
  • Fixed a bug where users who were made into groups could loose that status and not be able to restore it by checking the “I am a bot” setting, even unchecking it would not recover the group setting.
  • Fixed a bug where groups would repost any time they were tagged. This would cause top level threads shared in the group to show up but then each reply to the thread would show int he group as another top level. Causing the group to quickly become unusable. Now Groups only reboost posts they are tagged in that are top level.
  • Fixed a bug whereby the group account itself could not make posts without getting a 500 error. Now posts can be made but they wont show up as a group post and only show in followers home timelines, however if the account boosts its own post it will show as a post int he group.
  • Changed the wording in english in several spots to be appropriate for groups
  • Add hCaptcha support for registration to minimize bots/spam and make open registration feasible.
  • Other minor fixes including a little CSS cleanup

As you originally said your original contributions were not intended to make for a viable group server that allowed public registration, I dont think that was even a goal, you wanted it mostly to test the group directory and for use by devs. So you really didnt need to make it useful for general users. With that said if you do want to make your server open for general users and open up registration, or even if you just want the bug fixes and added features I mentioned, please feel free to use the QOTO server code instead, its essentially built on top of your own contributions so should be a similar user experience at least.

Just to be clear if anyone asks I’d say we developed the group server together, at least as far as the Group Server is concerned. I will be rewriting the readme to something specific to the group server. I will be sure to give you special mention there as well. You can find the source for the qoto group server here if you wish to use it for your own server or to otherwise pull in my changes:

git.qoto.org/qoto/qoto-groups

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.