pub-relay

Version, currently 0.2.01 version
  • 0.2.0latestFeb 1, 2020

github.com/noellabo/pub-relay

A service-type ActivityPub actor that will re-broadcast anything sent to it to anyone who subscribes to it.

49 stars
0 dependents
License: AGPL3

Installation

# Add this to your shard.yml
dependencies:
  pub-relay:
    github: noellabo/pub-relay
    version: ~> 0.2.0

Then run:

shards install

shard.yml

Crystal
0.32.1
License
AGPL3
Authors
RX14 <chris@rx14.co.uk>, noellabo <noel.yoshiba@gmail.com>
Target
  • pub-relay from src/entrypoint.cr

Dependencies

Runtime Dependencies

  • earl*github: ysbaddaden/earl, branch: master
  • redis~> 2.0.0github: stefanwille/crystal-redis
  • dotenv~> 0.1.0github: gdotdesign/cr-dotenv
  • openssl_ext*github: crystal-extras/openssl_ext, branch: master

Development Dependencies

  • webmock>= 0.12.1github: manastech/webmock.crdev

README

pub-relay (fork by noellabo)
=========

...is a service-type ActivityPub actor that will re-broadcast anything sent to it to anyone who subscribes to it.

![](https://i.imgur.com/5q8db54.jpg)

Endpoints:

- `GET /actor`
- `POST /inbox`
- `GET /.well-known/webfinger`
- `GET /.well-known/nodeinfo`
- `GET /nodeinfo/2.0`
- `GET /stats`

Operations:

- for Mastodon or compatible implementation
    - Send a Follow activity to the inbox to subscribe
        - Object: `https://www.w3.org/ns/activitystreams#Public`
    - Send an Undo of Follow activity to the inbox to unsubscribe
        - Object of object: `https://www.w3.org/ns/activitystreams#Public`
- for Pleroma or compatible implementation
    - Follow `actor` with mix command or pleroma_ctl
        - `MIX_ENV=prod mix pleroma.relay follow https://your.relay.hostname/actor`
        - `./bin/pleroma_ctl relay follow https://your.relay.hostname/actor`
    - Unfollow `actor` with mix command or pleroma_ctl
        - `MIX_ENV=prod mix pleroma.relay unfollow https://your.relay.hostname/actor`
        - `./bin/pleroma_ctl relay unfollow https://your.relay.hostname/actor`
- Send anything else to the inbox to broadcast it
    - Supported types: `Create`, `Update`, `Delete`, `Announce`, `Undo`, `Move`

Requirements:

- All requests must be HTTP-signed with a valid actor
- Only payloads that contain a linked-data signature will be re-broadcast
    - If the relay cannot re-broadcast, deliver an announce activity
- Only payloads addressed to `https://www.w3.org/ns/activitystreams#Public` will be re-broadcast
    - Deliver all activities except `Create`

## Installation

Download the binaries.

## Usage

TODO

## Contributors

- [RX14](https://source.joinmastodon.org/RX14) creator, maintainer
- [noellabo](https://github.com/noellabo)