ActivityPub Server for PLN with IPFS and encryption support

Description

Setup an ActivityPub server to be used by the teams and people within the Protocol Labs Network. Add support for IPFS to the codebase, initially for media files, and then potentially have every post be statically stored on IPFS.

User Impact

Who would want to use this and why?

The members of the PLN can have a local timeline and one stop shop for updated news, info, and fun across the PLN.

It can also be used for team updates, to run bots for various services and systems, and serve as a backbone of news and information across the PLN.

AP Server Background

This should get split out into Wiki pages about these servers.

  • Mastodon: Rails; largest codebase in use
  • Pixelfed: PHP; focused on images / Instagram clone
  • Pleroma: Elixir & PostgreSQL
  • MissKey: NodeJS; has a media drive concept built in

Full list of ActivityPub servers: https://fediverse.party/

Pleroma / ActivityPub FAQ: The Big Pleroma and Fediverse FAQ Part 1 - Beginner Questions

Pleroma GitLab: Pleroma / pleroma · GitLab

Pleroma Clients: Pleroma / pleroma · GitLab

MissKey GitHub: GitHub - misskey-dev/misskey: 🌎 An interplanetary microblogging platform 🚀

Features

Initial features.

IPFS for Media

Add support for all media to be posted to IPFS. When posting an image / video / file, it is published to IPFS with Web3Storage and persisted to Filecoin, and links point to a configurable gateway.

This feature would also be contributed as a patch to the codebase so others could run this on their server.

This could in general be a larger initiative— perhaps to the FFDweb — to add IPFS support to multiple codebases.

Encrypted DMs

There are varying levels of posting privacy. Ideally we would add encryption to direct messages so that instance admins can’t read it.

Posts to IPFS

On an opt in basis, make it so that users can have the entire content of each message be posted to IPFS.

2 Likes

I have a test install of Homebase up at https://plnetwork.xyz

TODO write up / share links to Homebase. The short hand is — can make it so posts are only available via local timeline by default, which is great for curated group interaction. See Local only posting Local only posting · hometown-fork/hometown Wiki · GitHub

There are a bunch of changes coming in Mastodon 4 that might make sense to wait for.

Some high level questions (and some maybe too in the weeds for now):

  • Can we list some advantages over PLN Discord (which seems like it does all this stuff… or can do this stuff) — eg no lock-in to Discord
  • PLN already has the Discord, the Filecoin Slack, and the Almanac (plus they have Matrix running too) AFAIK… so, various IMs and documentation-style interfaces into the network… do we need an SNS interface too? (in fact, I think a social network might be the most natural interface for a network of people+teams…)
    • I am assuming you are thinking of lots of bots and automation so a POSSE approach?
    • does that meant his is more of a consumption feed?
  • is there a way to identify what PLN team a person is? eg. maybe instead of @boris@plnetwork.xyz it should be @boris-fission@plnetwork.xyz. Or maybe #team-name in the profile since it looks like Masto 4 has some better hashtag tracking.
  • ideas for alternative for DMs until we get encryption? (maybe this is the role of Matrix/Discord… if someone on Masto wants to DM me I will give them my Signal now)

I have some notes elsewhere on the prose around “why” that’s not just technology that I need to write up.

Exactly.

Ideally blog RSS → company / project account.

GitHub → account

Video, calendar, etc.

Probably lots of things that could Zapier or RSS to account posting. I think company blog is a good start.

You can put stuff in the profile. Future Future integrate with PLN Directory in both directions.

Twitter also doesn’t have encrypted DMs. And, this is a trusted setup. The discussion around this is more about an arbitrary Masto instance where users can feel more secure that no admins are listening in.

1 Like

I was thinking more about posting back into the various Discourses, Matrix rooms, and Slacks. A whole network of RSS feeds connecting everything… like a web that is really wide, going around the world. This allows people to get the news wherever they are. I worry about comment silos. But I am excited about this… a distributed place for people across the network to network… seems like very much a viable alternative to Discord, which El•n could purchase next if he deems it a threat!

1 Like

Yes, bots posting into Discord as well. PLN Masto becomes a hub, and you can re-syndicate from there.

And here’s the tool to run: Darius Kazemi: "So if any server admin types are interested, it s…" - Friend Camp

1 Like

I really want to build a feature in mastodon that (1) makes local timelines subscribable (maybe this already exists) and (2) allows remote users to (a) subscribe to them by joining the instance with their remote identity and (b) post into the remote local-timeline by adding a list of communities that you’re a member of to the “post visibility” list.

(i.e., mastodon instances are “just” mailing lists)

(reposting from discord at @walkah’s request :smiley: )

There’s some capability delegation hiding in here.