.well-known | ||
users | ||
accept.jsonld | ||
client.py | ||
create.jsonld | ||
follow.jsonld | ||
LICENSE | ||
README.md | ||
server.py |
fuwuqi
Fuwuqi (fúwùqì or 服务器 means "server" in Chinese) is a useless C2S ActivityPub server for "extremely hardcore" ActivityPub enthusiasts. Craft your own exquisite WebFinger response! Customize your actor object exactly like you want! Hack and extend the 100-line Python server code! 100% guarenteed™ to federate with Mastodon!
Configuration
First, clone this repo on your server and your client device.
Now, generate an RSA keypair on your client device:
openssl genrsa -out private.pem 2048
openssl rsa -in private.pem -outform PEM -pubout -out public.pem
On the server, rename users/test.jsonld
to your username and pop it open in your favorite text editor. You should change 0.exozy.me
to match your server's domain name, test
to your username, and the publicKeyPem
field to the public key you just generated.
Onward! Now open .well-known/webfinger
in your editor, and modify it similarly. Finally, open server.py
and update the domain, obviously.
That wasn't so bad, was it? (sobbing sounds)
Usage
Alright, time for the real deal. Start up python server.py
on your server. If you want to customize the port or whatever, just change the source code.
Now on your client device, open up your favorite C2S ActivityPub client... oh wait... there aren't any! Welp, you'll just have to settle for reading the AP spec, writing some homemade JSON, and figuring out how python client.py
works. That's rough, buddy. You'll have to learn how to manually write Note
s, manually accept follow requests, and more! You can find some examples in this repo. HTTP signatures are generated client-side, for no good reason other than it works. If you want to view your unread messages, just curl
your inbox. Easy as that. (screaming in pain sounds)
Enjoy your new "extremely hardcore" ActivityPub server!!! 🎉😎🚀🙃🥳
Resources
- https://www.w3.org/TR/activitypub/
- https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-activitypub-server/
- https://blog.joinmastodon.org/2018/07/how-to-make-friends-and-verify-requests/
- https://docs.joinmastodon.org/spec/
- https://socialhub.activitypub.rocks/t/python-mastodon-server-post-with-http-signature/2757