Protecting Your Mastodon Instance with rapidblock

Haters will be haters
Protecting Your Mastodon Instance with rapidblock

The RapidBlock Project is a grassroots initiative to make Fediverse domain blocking more effective through collective action.

Moderation on the Fediverse is unevenly distributed. Some instance admins devotedly follow the #FediBlock hashtag, blocking abusive servers within hours of their first appearance on the network. Others wait until their own users file a report. Still others do nothing at all.

Installation

Installation with an debian based Linux distribution is as easy as running

 curl -s https://apt.rapidblock.org/install.sh | sudo bash

This will run through installing the apt repository, pulling the required packages, and installing them.

Configuration

Configuration for the toolset is fairly simple and is done through a text file located at /etc/default/rapidblock by default the file looks like the below:

 # vim:set ft=sh:
 #
 # This file contains the configuration settings for the RapidBlock cron script.
 #
 # In source control, this file lives at:Ω #   https://github.com/rapidblock-org/rapidblock/blob/main/dist/cron.default
 #
 # When installed via a package manager, this file lives at:
 #   /etc/default/rapidblock
 #
 # The crontab file lives at:
 #   /etc/cron.d/rapidblock
 #
 # The script itself lives at:
 #   /opt/rapidblock/scripts/cron.sh
 ​
 ENABLED=0
 SLEEP_MIN=0
 SLEEP_MAX=3600
 BLOCKLIST_URL="https://rapidblock.org/blocklist.json"
 SIGNATURE_URL="https://rapidblock.org/blocklist.json.sig"
 PUBLIC_KEY_FILE="/opt/rapidblock/share/rapidblock-dot-org.pub"
 INSTANCES=( \
   "mastodon-4.x|postgresql:///mastodon?host=/run/postgresql&port=5433" \
 )

In this format, the toolset is disabled and needs configuration you need to set the following ENABLED=1 set instance type and use either mastodon-3.x or mastodon-4.x matching the version of Mastodon you are using.

For a local database:

 INSTANCES=( \
   "mastodon-4.x|postgresql:///mastodon_database_name?host=/run/postgresql&port=5433" \
 )

For a remote database:

 INSTANCES=( \
   "mastodon-4.x|postgresql:///mastodon_database_name?host=db.host.name&port=5432&user=username&password=secret" \
 )

Once these have been set the script will be called via a cronjob every hour where it will sleep a random amount of time from 0 to 3600 seconds and will then download the update and install it.

About the author
Stephen Schwetz

Stephen Schwetz

I collect movies TV series and acronyms after my name. I am an active ADHD and Autistic, who suffers from all the trauma of trying to fit into a social system that doesn't work for the last 46 years

The Schwarrisons

A Neurodivergent Family Trying to Fit Their Square Pegs Into the Round Holes of Life

The Schwarrisons

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to The Schwarrisons.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.