Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ActivityPub support #494

Open
gerwitz opened this issue Nov 5, 2022 · 9 comments
Open

ActivityPub support #494

gerwitz opened this issue Nov 5, 2022 · 9 comments
Labels
enhancement New feature or request help wanted Extra attention is needed plugin-endpoint Endpoint plug-in question Further information is requested
Milestone

Comments

@gerwitz
Copy link

gerwitz commented Nov 5, 2022

Just for discussion!

When #465 closed, I was triggered to try deploying IndieKit again. But this is the week I decided to join the ActivityPub fediverse, and I’ve been investigating ways to participate with my site.

One option would be to mimic IndieKit and implement WebFinger, Oauth, ActivityPub, etc. As with Webmentions, decisions would have to be made about storing metadata like “likes” and reply pointers in-repo or in a metadata store. And posting using the site-linked identity would always be through the site, including replying. That’s not unheard of in indieweb, but I don’t want my site to include every throwaway comment I make.

I’d prefer, rather, to POSSE to a fediverse presence. Unfortunately, adoption of ActivityPub for this is weak, it seems the best way would be an instance of Mastodon (or a Mastodon-alike such as Akkoma) for my participation, using IndieKit to syndicate to it. As a stretch, updating the repo with metadata including the post URL and even reply counts, etc.

My plan, thus, is to deploy IndieKit and try adding the Mastodon API as a syndication target. Does this feel right?

@aciccarello
Copy link

Not exactly what you're talking about, but I did want to call out https://fed.brid.gy/ which does provide translation of ActivityPub to Webmentions & Microformats.

@paulrobertlloyd
Copy link
Collaborator

I don’t know enough about ActivityPub, but I did see activitypub-express, so it might be possible to create an endpoint plugin that adds these ActivityPub endpoints to your Indiekit server, and saves data to its associated database.

@paulrobertlloyd paulrobertlloyd added enhancement New feature or request plugin-endpoint Endpoint plug-in question Further information is requested labels Nov 6, 2022
@paulrobertlloyd
Copy link
Collaborator

paulrobertlloyd commented Nov 6, 2022

My plan, thus, is to deploy IndieKit and try adding the Mastodon API as a syndication target. Does this feel right?

That’s what I’m doing currently. It’s quite nice to see people moving over to Mastodon, and that they’ll find my profile with 507 posts there, the vast majority having been cross-posted by Indiekit 😄

I suspect that if ActivityPub was added to Indiekit, you could avoid the need to syndicate; a post would be written to the database, and ActivityPub clients would get notified. Might need to review the flow for updating the post file to append a link to the syndicated copy on Mastodon, however.

@gerwitz
Copy link
Author

gerwitz commented Nov 6, 2022

Well, I feel silly because I didn’t notice there already is a Mastodon syndicator 😆

I’m not sure how to bring metadata back, but perhaps bridgy + webmention.io is a good start.

@gerwitz gerwitz closed this as completed Nov 6, 2022
@paulrobertlloyd
Copy link
Collaborator

paulrobertlloyd commented Nov 9, 2022

Started venturing down the rabbit hole in https://github.com/getindiekit/indiekit/tree/activitypub. Have an ActivityPub plugin which provides the .well-known endpoints for nodeinfo and webfinger, and means I can find an Indiekit server on a third-party instance, such as Mastodon. Some of other ActivityPub endpoints work, but don’t provide any data. That’s what I need to work out next.

I think probably the best approach is to have the ActivityPub endpoint transform posts saved in the database (converting from MF2 to JSON-LD objects), and then advertise these to the ‘fediverse’ by having them appear in the outbox. I think. It’s all extremely complicated.

@paulrobertlloyd paulrobertlloyd changed the title FediKit? ActivityPub support Nov 9, 2022
@paulrobertlloyd paulrobertlloyd added the help wanted Extra attention is needed label Nov 9, 2022
@paulrobertlloyd paulrobertlloyd added this to the Later milestone Dec 15, 2022
@gerwitz
Copy link
Author

gerwitz commented Jan 7, 2023

FWIW, I am happy with my setup: IndieKit for Micropub and syndication to a separate ActivityPub server (Akkoma). I think it's best to separate these concerns.

Maybe there are interesting features to be had with the Mastodon API (e.g. updating the number of likes/reblogs) but the complexities of being a good ActivityPub fediverse citizen are probably too much to ask of IndieKit!

@paulrobertlloyd
Copy link
Collaborator

There’s probably a nice middle ground to be found here; I see there’s lots activity (pun intended) around ‘minimal’ ActivityPub instances. Maybe Indiekit can have a role in making it easy to have your site be part of the the Fediverse (be discoverable, send updates), but not attempt to be a full citizen (have all conversations run through Indiekit/your website).

Anyway, having played with the above, and made my test server visible to a Mastodon server yet not implemented anyway of removing itself, my test database is now getting all manner of ActivityPub updates – one reason to park this for the time being!

@gerwitz
Copy link
Author

gerwitz commented Jul 12, 2023

I believe we should close this issue unless someone is planning to work on it. ActivityPub implementation is best delegated to a receiving application.

@paulrobertlloyd
Copy link
Collaborator

Happy to keep this issue open for now; I started integrating Express ActivityPub, and there seemed to be some milage in doing something with this. Not only that, I need to implement something, if only temporarily, to deregister the @[email protected] account, which is still receiving activity pings from Mastodon!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed plugin-endpoint Endpoint plug-in question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants