I Guess I’m now the first ever Indiekit Instance on the #fediverse
Thanks to Fedify
{ "@context": [ "https://www.w3.org/ns/activitystreams", "https://w3id.org/security/v1" ], "type": "Person", "id": "https://rmendes.net/", "preferredUsername": "rick", "name": "Ricardo Mendes", "url": "https://rmendes.net/", "inbox": "https://rmendes.net/activitypub/inbox", "outbox": "https://rmendes.net/activitypub/outbox", "followers": "https://rmendes.net/activitypub/followers", "following": "https://rmendes.net/activitypub/following", "publicKey": { "id": "https://rmendes.net/#main-key", "owner": "https://rmendes.net/", "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4F2MDzCr5lYiI9LSFpf4\nsysMIQK63Po5FkVPKzfQSdxHJjYEFqniKRHa+gpQzg0aadSWMIsBbZWvVKypKZZR\nd3g3LDvtV6zyCOdQ0XUxp4ggYmvj22VcdZkyeygMSxkl9D8zr6U5TzAEfPYBMUMx\nwruTUAAFpyLQTCQmSCcMllxlPvgeHCF54VYg8QArTvvYz9G7IMsjR1OWM1AAg2Iy\n1UevOPBLVdSt2SBYf1GccsLjHEwgPTFT2iBtE2FTwlVgthOpEG5imB1Up0G1gZtA\nA5RCG1nR9ymRCFpDfg5Awtx+vtNCQ64guM1yjMeKEk7KJoULWqF2O+iEzvyR/BPq\n8QIDAQAB\n-----END PUBLIC KEY-----\n" }, "summary": "Personal website of Ricardo Mendes", "icon": { "type": "Image", "url": "https://rmendes.net/images/user/avatar.jpg" }, "alsoKnownAs": [ "https://mstdn.social/users/rmdes" ] }@context is a recommendation, not a requirement.
ActivityPub:
https://www.w3.org/TR/activitypub/#obj
Implementers SHOULD include the ActivityPub context in their object definitions.
ActivityStreams:
https://www.w3.org/TR/activitystreams-core/#jsonld
Implementations producing Activity Streams 2.0 documents SHOULD include a @context property with a value that includes a reference to the normative Activity Streams 2.0 JSON-LD @context definition using the URL " https://www.w3.org/ns/activitystreams".
@phnt @hongminhee @lutindiscret
>Also it was supposed to be entirely optional
Yes, exactly, here's ActivityPub:
https://www.w3.org/TR/activitypub/#obj
Implementers SHOULD include the ActivityPub context in their object definitions.
Here's ActivityStreams:
https://www.w3.org/TR/activitystreams-core/#jsonld
Implementations producing Activity Streams 2.0 documents SHOULD include a @context property with a value that includes a reference to the normative Activity Streams 2.0 JSON-LD @context definition using the URL " https://www.w3.org/ns/activitystreams".
In both cases it's a SHOULD, this means I am allowed to not include @context if I have a good reason to do so.
I have plenty of reasons but Mastodon can't process an activity if there is no @context. its_always_mastodon.jpg
[...]
{
"@context":["https://www.w3.org/ns/activitystreams","https://w3id.org/security/v1"],
"id":"https://pub.saar.social/user/achim/key",
"type":"Key",
"publicKeyPem":"-----BEGIN PUBLIC KEY-----\nMIIBI[...]IDAQAB\n-----END PUBLIC KEY-----\n",
"owner":"https://pub.saar.social/user/achim"
}
But my follow http call gets this back from Mastodon:
{"error":"Unable to fetch key JSON at https://pub.saar.social/user/achim/key"}
Can somebody give me a hint how to figure out what the problem is?
@achim I don't know about Mastodon, but here are some general tips:
- Your actor is served with content-type application/json, but it should be application/ld+json; profile="https://www.w3.org/ns/activitystreams"
- It's better to embed the key in your actor document and identify it with a fragment ID. This is more widely supported than standalone keys.
@silverpill
I'm trying now to follow my @admin@mitra user, hope it's not special too?
mitra seems to be unable to connect to my server. I could successfully call `podman exec -ti mitra curl fediscover/actor`, but my logs don't show any connection attempt from mitra.
First I was running fediscover (my server) on port 8000, thought maybe the non-standard port is lost somewhere, but with fediscover listening on port 80 doesn't work either. Does mitra require https to federate?
> 2026-01-05T14:05:50 mitra_api::activitypub::views [INFO] received in /users/admin/inbox: Follow
2026-01-05T14:05:50 mitra_api::activitypub::receiver [WARN] invalid HTTP signature: error sending request for url (http://fediscover/actor): client error (Connect)
2026-01-05T14:05:50 mitra_api::activitypub::views [WARN] failed to process activity (error sending request for url (http://fediscover/actor): client error (Connect)): {"@context":"https://www.w3.org/ns/activitystreams","actor":"http://fediscover/actor","id":"http://fediscover/activity/d7c2d96c-eea0-41e7-aee6-12fe6db75360","object":"http://mitra:8383/users/admin","published":"2026-01-05T14:05:50Z","to":["http://mitra:8383/users/admin"],"type":"Follow"}
GNU social JP is a social network, courtesy of GNU social JP管理人. It runs on GNU social, version 2.0.2-dev, available under the GNU Affero General Public License.
All GNU social JP content and data are available under the Creative Commons Attribution 3.0 license.