A python script to collect the server-wide blocklists from Friendica nodes to build a collection from trusted admin choices.
Go to file
Tobias Diekershoff bbb67e9d7e updated .gitignore 2023-01-07 16:37:37 +01:00
.reuse added REUSE for the License information 2023-01-07 09:49:42 +01:00
LICENSES added REUSE for the License information 2023-01-07 09:49:42 +01:00
src/brewserverblocklist clean double license header 2023-01-07 14:17:29 +01:00
tests clean double license header 2023-01-07 14:17:29 +01:00
.gitignore updated .gitignore 2023-01-07 16:37:37 +01:00
.gitignore.license applied REUSE, poetry and cookiebutter 2023-01-07 10:32:31 +01:00
CHANGELOG.md applied REUSE, poetry and cookiebutter 2023-01-07 10:32:31 +01:00
CHANGELOG.md.license applied REUSE, poetry and cookiebutter 2023-01-07 10:32:31 +01:00
CONDUCT.md applied REUSE, poetry and cookiebutter 2023-01-07 10:32:31 +01:00
CONDUCT.md.license applied REUSE, poetry and cookiebutter 2023-01-07 10:32:31 +01:00
CONTRIBUTING.md added a note about the REUSE compliance to the CONTRIBUTING.md file 2023-01-07 12:22:26 +01:00
CONTRIBUTING.md.license applied REUSE, poetry and cookiebutter 2023-01-07 10:32:31 +01:00
README.md added a description of the config file to the README 2023-01-07 15:42:32 +01:00
README.md.license applied REUSE, poetry and cookiebutter 2023-01-07 10:32:31 +01:00
pyproject.toml applied REUSE, poetry and cookiebutter 2023-01-07 10:32:31 +01:00
pyproject.toml.license applied REUSE, poetry and cookiebutter 2023-01-07 10:32:31 +01:00

README.md

Brew Server Blocklist

Friendica publishes the server wide blocklists for other servers in the fediverse. This script will collect the blocklists of servers of your choice and create a merged blocklist from them that you can then import into your own Friendica server.

To make certain that you don't block just any instance in the fediverse because $somebody has it on their blocklist you assign trustlevels to the correctnes of the blocklists of the other servers. Only when a server is blocked with a total trustlevel that is above a confidence level, it will be added to resulting blocklist automatically. Otherwise the user will be ask if they want to add a node to their blocklist or not.

The entries of your own servers blocklist will always gain enough trust so that they are added on the final blocklist again.

Config file

To use the script you have to create a config file. The structure of the file is the following

[soc1.example.com]
trust = 40

[soc2.example.com]
trust = 50

[soc3.example.com]
trust = 50

[soc4.example.com]
trust = 90

it assignes trust values to nodes in the network. The node domain names are given in the []. These are the nodes that the script will collect the server blocklists from.

Trust levels can be negative. Once their summed value does reach a value of 100 the blocklist entry is trusted automatically without user interaction.

Author

  • Tobias Diekershoff <tobias(dot)diekershoff(att)gmx(dot)net>

LICENSE

 berewserverblocklist  Copyright (C) 2023 Tobias Diekershoff

 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or (at
 your option) any later version.

 This program is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 for more details.

 You should have received a copy of the GNU General Public License along
 with this program.  If not, see <http://www.gnu.org/licenses/>.

REUSE compliance

This project uses REUSE to ensure that all components are release under a FLOSS compatible license. If you contribute to the project, please ensure that your contribution is REUSE compliant.

This can be done by adding the following to your .git/hooks/pre-commit hook.

#!/usr/bin/env bash
reuse lint

Credits

brewserverblocklist was created with cookiecutter and the py-pkgs-cookiecutter template.