3.5 KiB

Running the Blocklists

  1. Setup Fediblockhole
python3 -m pip install fediblockhole
  1. Clone this Repo
git clone /opt/fediblockhole
# optional: create folders for local scripts and secret config
# mkdir /opt/fediblockhole/local && mkdir /opt/fediblockhole/secretconfig
  1. Execute /opt/fediblockhole/

That's it. Blocklists will be written to the blocklists folder.

You can use local and secretconfig as subfolders that aren't tracked by git to create your own versions of these scripts and config.

  1. Optional ./ This will sync up a specified blocklist (any blocklist you want) to a specified destination. This is not required to generate blocklists.

For more information on how to configure the push file, or a greater explanation of the fundamentals of this process, see How to Sync up Blocklist Changes From Trusted Sources.


The list of blocklist sources can be found in the /config/pull.conf.toml.

These initial sources are pulled down, with each of them being saved as an intermediate file.

Note: If you want to include the public_description, modify the /config/pull.all.conf.toml file.

The script renames each of these source lists to a more friendly name (like

The remaining steps are performed on these sourcefiles, not pulled from urls.

If you customize the list of sources in pull.conf.toml or pull.all.conf.toml you should also update them in the various config/*.conf.toml files as needed.

You will likely also need to customize the to your needs as well if you make these changes.

Generate files with descriptions

Edit the file, and where you see as follows:

PULLCONFIG="/opt/fediblockhole/config/pull.conf.toml" # default, pull sources WITHOUT public_description
#PULLCONFIG="/opt/fediblockhole/config/pull.all.conf.toml" # pull down all sources WITH public_description

Comment out the first line and uncomment the second. Then run as normal. The resulting files will have public_comment populated.

Alternately, edit pull.conf.toml as follows to uncomment the 'public_comment' row:

#import_fields = ['reject_media', 'reject_reports', 'obfuscate']
import_fields = ['public_comment', 'reject_media', 'reject_reports', 'obfuscate']

Pushing to Your Own Server

If you want to push these blocks to your own server, that's an option, too.

An example of this is in You can copy it to /local/ and modify it. If you want to push to a git repo, that references If you want to automatically sync a merged or list to your own server, the script should be modified for your use.

You will need a very permissive API key created for your server to allow the push script to talk to it.

By default, this is configured to downgrade any suspensions to silence while there are follow relationships on your server against a given block.

Note that won't push to any servers at all until you update the API key and the configuration for it.