Moderating the Fediverse with Akkoma

An overview of Akkoma's moderation tools

I recently set up my own fediverse instance using the wonderful Akkoma. Moderation is obviously an important part of running your own instance, but I’ve found a disappointing lack of information about the Akkoma(/Pleroma) moderation workflow; what content is available seems more focused on the soft skills of moderation (how to make decisions, how to respond to certain types of content, etc.), stuff that I am already very experienced with as a long-time moderator of several online communities. Given that lack of information, I figured I’d write a simple overview of the moderation tools available, covering things like how reports work, how to delete posts, how to ban remote users, and how to defederate an entire problem instance.

Reports

Users can report both posts and accounts, from the local instance and remote instances. When reporting, they get the following dialog where they can select individual posts to report, or simply report the entire account:

Report dialog as seen by a user

They can (and hopefully will!) include a report reason telling you why they’re making the report. They can optionally send the report to the remote instance the user is registered on too.

As a moderator, you can access reports from the moderation button:
Mod button in the top panel
or from Admin-FE. Reports look like this:

Pleroma-FE’s reports menu

As you can see, not much information is provided, just the account reported, the report reason, the reporter, and any notes left by moderators on the report.
Post reporting is a little weird: if the report is for a local post, you will see an additional option to show the post. If the report is for a remote post, you won’t see the post listed anywhere in the UI, it will just appear as an account report (though the post will be mentioned in the report email you receive if you have email set up).

Moderating reports

You’re going to want to visit the profile of the reported user, which (as best I can tell) you need to navigate to manually (unless a local post was reported). Hopefully the report you’ve received will contain enough information for you to quickly identify the offending content or the issue with the user.

If the issue is just a post and you don’t need to take further action on the user, you can delete the post from the post’s overflow menu:

Deleting a post

This will completely delete the post from your instance.

If the issue requires more drastic action, however, you can take action against the entire account. Back in the reports dialog (or from the “Moderation” menu on the user’s profile), you will find two options: Deactivate account and Delete account.

  • Deactivate account - This is helpful if you need to review an account further or preserve it for some reason. This:
    1. Stops accepting incoming posts from the user.
    2. Immediately makes all their existing posts inaccessible to regular users.
    • Note: if you deactivate a local user, they lose control of their account as well.
  • Delete account - This is useful if you don’t need to review an account further and simply want all their content gone. This:
    1. Stops accepting incoming posts from the user.
    2. Immediately deletes all of their posts from your instance.
    • Note: of course if they are a local user, this deletes their account entirely. As I understand it, only admin users can delete local accounts unless “Privileged staff” is enabled in instance settings.

There are a few more actions you can take if you view the report from Admin-FE:

Viewing a report from Admin-FE (it is also notable that Admin-FE nicely provides links to the reported user and the reporter)

  • Force posts to be NSFW - this automatically marks this user’s posts as sensitive/NSFW. This is useful if a particular user posts NSFW content without marking it as such.
  • Force posts to not have media - this strips all media from this user’s posts. This is useful if a particular user posts media that is unacceptable/illegal on your instance, but you for some odd reason don’t want to totally ban them.
  • Force posts to be unlisted - this forces this user’s posts to be unlisted, so they don’t show up in public timelines, same as if it had been set as unlisted when it was posted.
  • Force posts to be followers-only - same as above, just set to followers-only.

If you need to make a note about a report, you can do so. That will be visible to other moderators, and will remain attached to the report after it has been closed so it’s useful to provide further context about what you did or didn’t do.

When you’re done with a report, you can close or resolve it. Functionally these do the same thing (I think? I’m not sure how that works with cross-instance reports), just categorize the finished report differently. Typically you would close reports that weren’t actionable, and resolve reports where action was taken. From Pleroma-FE, the “Show closed” option shows all closed and resolved reports. From Admin-FE, you can filter Open, Closed, and Resolved reports separately.

Defederating other instances

Let’s say you’ve found another instance that is dedicated to illegal content or hate or spam or lacks moderation and you want to prevent any federation with it. This is quite easy to do.
(These instructions are for Admin-FE, i.e. for instances with config in the database; the same thing can also be done from the configuration file if you prefer that.)

Go to Settings > MRF in Admin-FE. Add SimplePolicy to the list of enabled policies if not already enabled.

Policies in MRF settings in Admin-FE

Then find the “MRF Simple” configuration section. This filter allows several powerful options: automatically stripping all media from an instance, marking all media from an instance as sensitive/NSFW, removing all posts from an instance from the federated timeline, rejecting everything from an instance, only accepting posts from certain instances (the inverse of reject), marking all posts from an instance followers-only, ignoring reports from an instance, stripping avatars from accounts on an instance, stripping profile banners from accounts on an instance, rejecting ActivityPub deletes from an instance, and an option to apply those filters to entire threads.

MRF Simple configuration

To defederate an instance, we’re going to use the Reject filter. Click the + button, type the instance’s domain into the instance field, and optionally include a reason in the reason field.
Rejecting an instance
If you have MRF transparency enabled, these will show up in the corresponding section of your instance’s about page.

Once you’ve submitted the change, your instance will no longer federate with that instance.

Be aware that this will not delete any existing users/posts that have previously been received from that instance. If you want to do that (which you almost certainly do), you should go to Users in Admin-FE, change the filter to External, and search for the instance’s domain. Then select all accounts and select “Delete Accounts” from the “Moderate multiple users” menu.

Deleting those accounts

All trace of the offending instance will then be gone. If you have MediaProxy enabled you may have to do extra work to evict associated media from the cache.

In conclusion

I’ve figured most of this information out by trial-and-error, as the official documentation is woefully lacking when it comes to moderation. If I’ve made any mistakes here, please DM me @caylin@enby.army and I’ll fix it.

Hopefully this helps someone!

Post text licensed under CC BY-NC-SA 4.0 Other content is All Rights Reserved unless otherwise stated
Last updated on Oct 07, 2023 20:35 MDT