]> git.mxchange.org Git - fba.git/blobdiff - docs/README.md
Continued:
[fba.git] / docs / README.md
diff --git a/docs/README.md b/docs/README.md
new file mode 100644 (file)
index 0000000..8c08479
--- /dev/null
@@ -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)