X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=docs%2FREADME.md;fp=docs%2FREADME.md;h=8c08479f7d9a6c2021967473e2c7334f09adae76;hb=bd36d58fadcf377a7982103ca4d7e5c4376ef463;hp=0000000000000000000000000000000000000000;hpb=f805d0aa59d7a536bcc613d130914d0e6e683bea;p=fba.git diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..8c08479 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,71 @@ +# Fedi block API + +Used to see which instances block yours. + +## software used: + +- python 3.10.2 + +## Installation + +```bash +sudo useradd --home-dir=/opt/fedi-block-api --comment "Fedi Block API" --user-group --create-home fba +sudo mkdir -p /opt/fedi-block-api +sudo chown -R fba:fba /opt/fedi-block-api +sudo -Hu fba git clone git://git.mxchange.org/fba.git /opt/fedi-block-api/ +cd /opt/fedi-block-api/ +sudo -Hu fba pip3 install -r requirements.txt +sudo -Hu fba cp blocks_empty.db blocks.db +sudo -Hu fba cp config.defaults.json config.json +sudo -Hu fba ./fba.py fetch_instances --domain=mastodon.social # try a bunch of large servers here +``` + +### Alter configuration file +You maybe wish to change the configuration file, e.g. log_level is set to "info" which is the default but invates privacy of your users, but your choice: + +``` + "critical" + "error" + "warning" + "info" + "debug" + "trace" +``` + +### Fetch blocklists locally (WIP) +To save yourself bandwidth and codeberg, too, you want to clone the blocklists from some folks: + +``` +sudo -Hu fba git clone https://codeberg.org/oliphant/blocklists.git blocklists/oliphant/ +``` + +WIP notice: This feature is not implemented yet. + +### Install the services + +```bash +sudo cp services/* /etc/systemd/system +``` + +### start the services + +```bash +systemctl enable --now fetch_blocks +systemctl enable --now fedi_block_api +``` + +## Try it out + +https://fba.ryona.agency/ uses an older code than this one. So it doesn't reflect this code here. My FBA sub-domain is currently password-protected as I still need to fix some performance issues with large blocking lists. + +## Maintenance + +Run these SQL queries from time to time. They always should return zero. + +```sql +SELECT COUNT(blocked) AS cnt FROM blocks LEFT JOIN instances ON blocks.blocked = instances.domain OR blocks.blocker = instances.domain WHERE domain IS NULL LIMIT 1; +SELECT COUNT(domain) AS cnt FROM instances WHERE nodeinfo_url IS NOT NULL AND software IS NULL LIMIT 1; +``` +## License + +[AGPLv3](https://gnu.org)