Source to relay.fedi.buzz: relay the streaming API of Mastodon instances
Find a file
Sandro Jäckel 997471d094
Fix clippy
2024-05-24 02:37:14 +02:00
.github/workflows .github/workflows/build: install dependencies 2024-03-27 23:11:09 +01:00
src Fix clippy 2024-05-24 02:37:14 +02:00
static static: repair HTML 2023-10-27 01:53:45 +02:00
.gitignore README: init 2023-01-11 19:41:48 +01:00
Cargo.lock Cargo.lock: update 2024-04-25 02:09:07 +02:00
Cargo.toml Cargo.lock: enable more reqwest features 2024-03-28 02:43:36 +01:00
config.yaml add RedisConfig.password_file 2023-10-12 22:09:43 +02:00
flake.lock Replace ensurePermissions with ensureDBOwnership which is required in NixOS 24.05 2024-05-24 02:30:04 +02:00
flake.nix Replace ensurePermissions with ensureDBOwnership which is required in NixOS 24.05 2024-05-24 02:30:04 +02:00
INSTALL-UBUNTU.md tweaked wording for proxy section 2024-04-11 02:30:31 -05:00
LICENSE LICENSE: add 2023-01-11 19:39:39 +01:00
nixos-module.nix Replace ensurePermissions with ensureDBOwnership which is required in NixOS 24.05 2024-05-24 02:30:04 +02:00
README.md README: link Ubuntu howto post 2024-04-09 23:37:45 +02:00

buzzrelay

A follow-only ActivityPub relay that connects to Mastodon's Streaming API.

You don't need to run this yourself, just use the instance at relay.fedi.buzz.

Setup

See also: Notes on an setting up a fediverse relay with FediBuzz on an Ubuntu server.

Build

NixOS/Flakes users are in luck: not only does this build, it also comes with a NixOS module!

Anyone else installs a Rust toolchain to build with:

cargo build --release

Generate signing keypair

ActivityPub messages are signed using RSA keys. Generate a keypair first:

openssl genrsa -out private-key.pem 4096
openssl rsa -in private-key.pem -pubout -out public-key.pem

Let your config.yaml point there.

Database

Create a PostgreSQL database and user, set them in your config.yaml.

The program will create its schema on start.

Ethics

Should everyone connect to the streaming API of the big popular Mastodon instances?

Once these connections become a problem, they may become disallowed, resulting in problems for everyone. That's why fedi.buzz serves the firehose feed through the streaming API, too.

You can let this service use fedi.buzz as listed in the default config.yaml.