Fediverse

The fediverse is a decentralised social network. The list of services implementing activityPub: https://git.feneas.org/feneas/fediverse/-/wikis/watchlist-for-activitypub-apps

source: https://monoskop.org/Federated_networks

nil

Web Finger

It is a specification to get information about profiles of a person entity.

For example, you can get information about my profile on mastodon.social: https://webfinger.net/lookup/?resource=LaBecasse%40mastodon.social

Using the returned JSON document:

{
  "subject": "acct:LaBecasse@mastodon.social",
  "aliases": [
    "https://mastodon.social/@LaBecasse",
    "https://mastodon.social/users/LaBecasse"
  ],
  "links": [
    {
      "rel": "http://webfinger.net/rel/profile-page",
      "type": "text/html",
      "href": "https://mastodon.social/@LaBecasse"
    },
    {
      "rel": "self",
      "type": "application/activity+json",
      "href": "https://mastodon.social/users/LaBecasse"
    },
    {
      "rel": "http://ostatus.org/schema/1.0/subscribe"
    }
  ]
}

You can get my actor object using the following command (accept type is required for content negociation)

curl -H "Accept: application/activity+json" https://mastodon.social/users/LaBecasse

ActivityPub

Les Principes

Tous les acteurs gérèrent un couple de clés publique/privée pu et tous les messages sont publiés avec une signature.

Toutes les activités suivent le standard ActivityStreams. Toutes les connections sont encryptées en utilisant HTTPS. Toutes les activités ont un URI.

WebFinger

Pour traduire les "emails" de fédiverse qui identifie un acteur, en un URI, on utilise le protocole WebFinger.

Follow, create

À chaque fois qu'un acteur a veut suivre un autre b. a fait une requête subscribe à b et b répond à a pour confirmer. Donc il faut que a soit sur un serveur qui accepte les requêtes entrantes.

Le type des messages des activités peut être ce que l'on souhaite comme html, png, … Mais très peu sont supportés, le type par défault est html.

La plupart des champs des activités sont optionnels, même la date.

Annonce

C'est le boost, retoot ;) Il n'y a pas de relais de l'activité.

Les objects suivant les plateformes

Peertube

curl -H "Accept: application/activity+json" https://aperi.tube/videos/watch/7d73cfc8-df64-4994-a4a7-d237e07778ee | jq .
{
  "type": "Video",
  "id": "https://aperi.tube/videos/watch/7d73cfc8-df64-4994-a4a7-d237e07778ee",
  "name": "Unwork in Progress - Stream avec peertube, Hadès et PianoLive",
  "duration": "PT0S",
  "uuid": "7d73cfc8-df64-4994-a4a7-d237e07778ee",
  "tag": [
    {
      "type": "Hashtag",
      "name": "hades"
    },
    {
      "type": "Hashtag",
      "name": "musique"
    },
    {
      "type": "Hashtag",
      "name": "piano"
    }
  ],
  "category": {
    "identifier": "1",
    "name": "Music"
  },
  "language": {
    "identifier": "fr",
    "name": "French"
  },
  "views": 11,
  "sensitive": false,
  "waitTranscoding": true,
  "isLiveBroadcast": true,
  "liveSaveReplay": false,
  "permanentLive": false,
  "state": 5,
  "commentsEnabled": true,
  "downloadEnabled": true,
  "published": "2021-02-03T10:17:55.535Z",
  "originallyPublishedAt": null,
  "updated": "2021-02-03T11:15:05.037Z",
  "mediaType": "text/markdown",
  "content": "Une petite tentative de stream avec Peertube, peut-être un peu de musique au piano pour apprendre les musiques d'Hadès. C'est comme ne pas travailler, mais avec la porte ouverte :)",
  "support": null,
  "subtitleLanguage": [],
  "icon": [
    {
      "type": "Image",
      "url": "https://aperi.tube/static/thumbnails/7d73cfc8-df64-4994-a4a7-d237e07778ee.jpg",
      "mediaType": "image/jpeg",
      "width": 223,
      "height": 122
    },
    {
      "type": "Image",
      "url": "https://aperi.tube/lazy-static/previews/7d73cfc8-df64-4994-a4a7-d237e07778ee.jpg",
      "mediaType": "image/jpeg",
      "width": 850,
      "height": 480
    }
  ],
  "url": [
    {
      "type": "Link",
      "mediaType": "text/html",
      "href": "https://aperi.tube/videos/watch/7d73cfc8-df64-4994-a4a7-d237e07778ee"
    }
  ],
  "likes": "https://aperi.tube/videos/watch/7d73cfc8-df64-4994-a4a7-d237e07778ee/likes",
  "dislikes": "https://aperi.tube/videos/watch/7d73cfc8-df64-4994-a4a7-d237e07778ee/dislikes",
  "shares": "https://aperi.tube/videos/watch/7d73cfc8-df64-4994-a4a7-d237e07778ee/announces",
  "comments": "https://aperi.tube/videos/watch/7d73cfc8-df64-4994-a4a7-d237e07778ee/comments",
  "attributedTo": [
    {
      "type": "Person",
      "id": "https://aperi.tube/accounts/bnjbvr"
    },
    {
      "type": "Group",
      "id": "https://aperi.tube/video-channels/bnjbvr_channel"
    }
  ],
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "cc": [
    "https://aperi.tube/accounts/bnjbvr/followers"
  ],
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1",
    {
      "RsaSignature2017": "https://w3id.org/security#RsaSignature2017"
    },
    {
      "pt": "https://joinpeertube.org/ns#",
      "sc": "http://schema.org#",
      "Hashtag": "as:Hashtag",
      "uuid": "sc:identifier",
      "category": "sc:category",
      "licence": "sc:license",
      "subtitleLanguage": "sc:subtitleLanguage",
      "sensitive": "as:sensitive",
      "language": "sc:inLanguage",
      "isLiveBroadcast": "sc:isLiveBroadcast",
      "liveSaveReplay": {
        "@type": "sc:Boolean",
        "@id": "pt:liveSaveReplay"
      },
      "permanentLive": {
        "@type": "sc:Boolean",
        "@id": "pt:permanentLive"
      },
      "Infohash": "pt:Infohash",
      "Playlist": "pt:Playlist",
      "PlaylistElement": "pt:PlaylistElement",
      "originallyPublishedAt": "sc:datePublished",
      "views": {
        "@type": "sc:Number",
        "@id": "pt:views"
      },
      "state": {
        "@type": "sc:Number",
        "@id": "pt:state"
      },
      "size": {
        "@type": "sc:Number",
        "@id": "pt:size"
      },
      "fps": {
        "@type": "sc:Number",
        "@id": "pt:fps"
      },
      "startTimestamp": {
        "@type": "sc:Number",
        "@id": "pt:startTimestamp"
      },
      "stopTimestamp": {
        "@type": "sc:Number",
        "@id": "pt:stopTimestamp"
      },
      "position": {
        "@type": "sc:Number",
        "@id": "pt:position"
      },
      "commentsEnabled": {
        "@type": "sc:Boolean",
        "@id": "pt:commentsEnabled"
      },
      "downloadEnabled": {
        "@type": "sc:Boolean",
        "@id": "pt:downloadEnabled"
      },
      "waitTranscoding": {
        "@type": "sc:Boolean",
        "@id": "pt:waitTranscoding"
      },
      "support": {
        "@type": "sc:Text",
        "@id": "pt:support"
      },
      "likes": {
        "@id": "as:likes",
        "@type": "@id"
      },
      "dislikes": {
        "@id": "as:dislikes",
        "@type": "@id"
      },
      "playlists": {
        "@id": "pt:playlists",
        "@type": "@id"
      },
      "shares": {
        "@id": "as:shares",
        "@type": "@id"
      },
      "comments": {
        "@id": "as:comments",
        "@type": "@id"
      }
    }
  ]
}

Pixelfed

curl -H "Accept: application/activity+json" https://pixelfed.uk/p/PaulSutton/253139904513576960 | jq .
{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1",
    {
      "sc": "http://schema.org#",
      "Hashtag": "as:Hashtag",
      "sensitive": "as:sensitive",
      "commentsEnabled": "sc:Boolean",
      "capabilities": {
        "announce": {
          "@type": "@id"
        },
        "like": {
          "@type": "@id"
        },
        "reply": {
          "@type": "@id"
        }
      }
    }
  ],
  "id": "https://pixelfed.uk/p/PaulSutton/253139904513576960",
  "type": "Note",
  "summary": null,
  "content": "Paignton Harbour Set 2",
  "inReplyTo": null,
  "published": "2021-01-08T12:47:36+00:00",
  "url": "https://pixelfed.uk/p/PaulSutton/253139904513576960",
  "attributedTo": "https://pixelfed.uk/users/PaulSutton",
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "cc": [
    "https://pixelfed.uk/users/PaulSutton/followers"
  ],
  "sensitive": false,
  "attachment": [
    {
      "type": "Image",
      "mediaType": "image/jpeg",
      "url": "https://pixelfed.uk/storage/m/175f14a8107612db4ef574e5af110815694dd053/204fed9321ef9d7689dc8fd635a6c62b77bb1f5e/kItHNPL1w7VIwCMNDTZtgf9JSSkmg7HCiysIWa52.jpeg",
      "name": null
    },
    {
      "type": "Image",
      "mediaType": "image/jpeg",
      "url": "https://pixelfed.uk/storage/m/175f14a8107612db4ef574e5af110815694dd053/204fed9321ef9d7689dc8fd635a6c62b77bb1f5e/GJbmbeQdgIGxSRpx1MxD07Nx3UtYhpL8h7vwCs0J.jpeg",
      "name": null
    },
    {
      "type": "Image",
      "mediaType": "image/jpeg",
      "url": "https://pixelfed.uk/storage/m/175f14a8107612db4ef574e5af110815694dd053/204fed9321ef9d7689dc8fd635a6c62b77bb1f5e/3Y2YqUuEnPFUyXs3w4D8CCamxvIREU14EX89gRRU.jpeg",
      "name": null
    }
  ],
  "tag": [],
  "commentsEnabled": true,
  "capabilities": {
    "announce": "https://www.w3.org/ns/activitystreams#Public",
    "like": "https://www.w3.org/ns/activitystreams#Public",
    "reply": "https://www.w3.org/ns/activitystreams#Public"
  },
  "location": null
}

Prismo

curl -H "Accept: application/activity+json" https://prismo.fedibird.com/posts/45866ec4-78d5-45f3-8554-4f9d3a354f9b | jq .
{
  "id": "https://prismo.fedibird.com/posts/45866ec4-78d5-45f3-8554-4f9d3a354f9b",
  "type": "Page",
  "name": "【トランプ→バイデン大統領へ】大統領執務室を模様替え",
  "summary": null,
  "published": "2021-01-25T17:02:05Z",
  "content": "",
  "source": {
    "content": "",
    "mediaType": "text/markdown"
  },
  "url": {
    "type": "Link",
    "mediaType": "text/html",
    "href": "https://www.buzzfeed.com/jp/sydrobinson1/biden-oval-office-vs-trump-oval-office-pictures-1"
  },
  "likes": 3,
  "attributedTo": [
    {
      "type": "Person",
      "id": "https://prismo.fedibird.com/@Yukiya"
    }
  ],
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "tag": [
    {
      "type": "Hashtag",
      "href": "https://prismo.fedibird.com/tags/news",
      "name": "#news"
    },
    {
      "type": "Hashtag",
      "href": "https://prismo.fedibird.com/tags/%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9",
      "name": "#ニュース"
    },
    {
      "type": "Hashtag",
      "href": "https://prismo.fedibird.com/tags/%E3%82%A2%E3%83%A1%E3%83%AA%E3%82%AB",
      "name": "#アメリカ"
    }
  ],
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    "https://w3id.org/security/v1",
    {
      "Hashtag": "as:Hashtag"
    }
  ]
}

lotide

curl -H "Accept: application/activity+json" https://narwhal.city/posts/40 | jq .
{
  "@context": "https://www.w3.org/ns/activitystreams",
  "id": "https://narwhal.city/posts/40",
  "type": "Note",
  "mediaType": "text/html",
  "to": "https://narwhal.city/communities/11",
  "published": "2021-02-05T14:12:39.408255+00:00",
  "cc": "https://www.w3.org/ns/activitystreams#Public",
  "source": {
    "content": "Hey guys! I'm a former Lemmy user who's trying out other platforms.\r\n\r\nAnybody got tips and tricks for this platform? Features I should know about?",
    "mediaType": "text/markdown"
  },
  "content": "<p>Hey guys! I'm a former Lemmy user who's trying out other platforms.</p>\n<p>Anybody got tips and tricks for this platform? Features I should know about?</p>\n",
  "summary": "Hello Everyone! I'm New Here.",
  "attributedTo": "https://narwhal.city/users/71"
}
curl -H "Accept: application/activity+json"  https://narwhal.city/posts/45 | jq .
{
  "@context": "https://www.w3.org/ns/activitystreams",
  "id": "https://narwhal.city/posts/45",
  "type": "Page",
  "url": "https://sporks.space/2021/02/02/mastodon-really-is-crumbling-and-it-will-only-get-worse/",
  "published": "2021-02-08T23:28:58.177564+00:00",
  "summary": "Mastodon really is crumbling — and it will only get worse",
  "attributedTo": "https://narwhal.city/users/71",
  "cc": "https://www.w3.org/ns/activitystreams#Public",
  "to": "https://narwhal.city/communities/13"
}

Mastodon

curl -H "Accept: application/activity+json" https://mastodon.social/@LaBecasse/105666993080906949|jq .
{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "ostatus": "http://ostatus.org#",
      "atomUri": "ostatus:atomUri",
      "inReplyToAtomUri": "ostatus:inReplyToAtomUri",
      "conversation": "ostatus:conversation",
      "sensitive": "as:sensitive",
      "toot": "http://joinmastodon.org/ns#",
      "votersCount": "toot:votersCount"
    }
  ],
  "id": "https://mastodon.social/users/LaBecasse/statuses/105666993080906949",
  "type": "Note",
  "summary": null,
  "inReplyTo": "https://mastodon.social/users/LaBecasse/statuses/105666958571154963",
  "published": "2021-02-03T11:05:58Z",
  "url": "https://mastodon.social/@LaBecasse/105666993080906949",
  "attributedTo": "https://mastodon.social/users/LaBecasse",
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "cc": [
    "https://mastodon.social/users/LaBecasse/followers",
    "https://tutut.delire.party/users/bnjbvr"
  ],
  "sensitive": false,
  "atomUri": "https://mastodon.social/users/LaBecasse/statuses/105666993080906949",
  "inReplyToAtomUri": "https://mastodon.social/users/LaBecasse/statuses/105666958571154963",
  "conversation": "tag:tutut.delire.party,2021-02-03:objectId=1082876:objectType=Conversation",
  "content": "<p><span class=\"h-card\"><a href=\"https://tutut.delire.party/@bnjbvr\" class=\"u-url mention\">@<span>bnjbvr</span></a></span> Merci pour la musique, c&apos;est très beau. Quand tu parles le son est très bon 👍</p>",
  "contentMap": {
    "fr": "<p><span class=\"h-card\"><a href=\"https://tutut.delire.party/@bnjbvr\" class=\"u-url mention\">@<span>bnjbvr</span></a></span> Merci pour la musique, c&apos;est très beau. Quand tu parles le son est très bon 👍</p>"
  },
  "attachment": [],
  "tag": [
    {
      "type": "Mention",
      "href": "https://tutut.delire.party/users/bnjbvr",
      "name": "@bnjbvr@tutut.delire.party"
    }
  ],
  "replies": {
    "id": "https://mastodon.social/users/LaBecasse/statuses/105666993080906949/replies",
    "type": "Collection",
    "first": {
      "type": "CollectionPage",
      "next": "https://mastodon.social/users/LaBecasse/statuses/105666993080906949/replies?only_other_accounts=true&page=true",
      "partOf": "https://mastodon.social/users/LaBecasse/statuses/105666993080906949/replies",
      "items": []
    }
  }
}

Writefreely

curl -H "Accept: application/activity+json" https://buron.coffee/presentation|jq .
{
  "@context": [
    "https://www.w3.org/ns/activitystreams"
  ],
  "type": "Article",
  "id": "https://buron.coffee/api/posts/db3x1m8dix",
  "published": "2019-01-20T11:19:11+01:00",
  "inReplyTo": null,
  "url": "https://buron.coffee/presentation",
  "attributedTo": "https://buron.coffee/api/collections/becasse",
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "cc": [
    "https://buron.coffee/api/collections/becasse/followers"
  ],
  "name": "À Propos",
  "content": "<ul><li><a href=\"#org3d42cee\" rel=\"nofollow\">Sur les réseaux</a>\n<ul><li><a href=\"#org5ec8c10\" rel=\"nofollow\">Chère de Prince</a></li>\n<li><a href=\"#org30e38b0\" rel=\"nofollow\">Thèse</a></li>\n<li><a href=\"#org0e2d643\" rel=\"nofollow\">Pour me contacter</a></li></ul></li></ul>\n\n<p><img src=\"https://piwigo.buron.coffee/_data/i/upload/2019/01/07/20190107203256-95008dd5-la.jpg\" alt=\"img\"></p>\n\n<p>J&#39;ouvre ce blog pour décrire des idéees avec plus abstraction que sur <a href=\"https://shaarli.buron.coffee/\" rel=\"nofollow\">mon marque page numérique</a>. C&#39;est histoire de prendre un peu de distance avec les histoires des autres.</p>\n\n<p>J&#39;ouvre ce blog pour raconter mes propres histoires qui bien que pouvant être illustrer par quelques photos, n&#39;ont pas leur place dans <a href=\"https://piwigo.buron.coffee/\" rel=\"nofollow\">mon album photo</a>.</p>\n\n<p>J&#39;ouvre ce blog, parce que ça n&#39;est simplement un blog, c&#39;est aussi une partie de la <a href=\"https://fr.wikipedia.org/wiki/Fediverse\" rel=\"nofollow\">fediverse</a>, vous pouvez donc commenter sur votre réseau décentralisé préféré 😉</p>\n\n<p>Je publie aussi du code sur <a href=\"https://gitlab.com/maxburon\" rel=\"nofollow\">gitlab</a> et sur <a href=\"https://github.com/laBecasse\" rel=\"nofollow\">github</a>.</p>\n\n<p><a id=\"org3d42cee\"></a></p>\n\n<h1 id=\"sur-les-réseaux\">Sur les réseaux</h1>\n\n<p>Vous pouvez me retrouver sur différent réseau sous le blase : <strong>La Bécasse</strong></p>\n<ul><li>sur mastodon : <a href=\"https://mastodon.social/@LaBecasse\" rel=\"nofollow\">LaBecasse@mastodon.social</a></li>\n<li>sur twitter : <a href=\"https://twitter.com/labecasse_\" rel=\"nofollow\">@labecasse_</a> (en pause)</li></ul>\n\n<p><a id=\"org5ec8c10\"></a></p>\n\n<h1 id=\"chère-de-prince\">Chère de Prince</h1>\n\n<p>Je suis l&#39;administrateur du <a href=\"https://chatons.org/\" rel=\"nofollow\">chaton</a> : <a href=\"https://cheredeprince.net\" rel=\"nofollow\">Chère de Prince</a>.</p>\n\n<p><a id=\"org30e38b0\"></a></p>\n\n<h1 id=\"thèse\">Thèse</h1>\n\n<p>J&#39;ai aussi une <a href=\"http://pages.saclay.inria.fr/maxime.buron/\" rel=\"nofollow\">thèse en cours</a>.</p>\n\n<p><a id=\"org0e2d643\"></a></p>\n\n<h1 id=\"pour-me-contacter\">Pour me contacter</h1>\n<ul><li>par mail : maxime at buron.coffee</li>\n<li>sur <a href=\"https://matrix.org/\" rel=\"nofollow\">matrix</a> : @emixam150 : cheredeprince.net</li></ul>\n",
  "contentMap": {
    "fr": "<ul><li><a href=\"#org3d42cee\" rel=\"nofollow\">Sur les réseaux</a>\n<ul><li><a href=\"#org5ec8c10\" rel=\"nofollow\">Chère de Prince</a></li>\n<li><a href=\"#org30e38b0\" rel=\"nofollow\">Thèse</a></li>\n<li><a href=\"#org0e2d643\" rel=\"nofollow\">Pour me contacter</a></li></ul></li></ul>\n\n<p><img src=\"https://piwigo.buron.coffee/_data/i/upload/2019/01/07/20190107203256-95008dd5-la.jpg\" alt=\"img\"></p>\n\n<p>J&#39;ouvre ce blog pour décrire des idéees avec plus abstraction que sur <a href=\"https://shaarli.buron.coffee/\" rel=\"nofollow\">mon marque page numérique</a>. C&#39;est histoire de prendre un peu de distance avec les histoires des autres.</p>\n\n<p>J&#39;ouvre ce blog pour raconter mes propres histoires qui bien que pouvant être illustrer par quelques photos, n&#39;ont pas leur place dans <a href=\"https://piwigo.buron.coffee/\" rel=\"nofollow\">mon album photo</a>.</p>\n\n<p>J&#39;ouvre ce blog, parce que ça n&#39;est simplement un blog, c&#39;est aussi une partie de la <a href=\"https://fr.wikipedia.org/wiki/Fediverse\" rel=\"nofollow\">fediverse</a>, vous pouvez donc commenter sur votre réseau décentralisé préféré 😉</p>\n\n<p>Je publie aussi du code sur <a href=\"https://gitlab.com/maxburon\" rel=\"nofollow\">gitlab</a> et sur <a href=\"https://github.com/laBecasse\" rel=\"nofollow\">github</a>.</p>\n\n<p><a id=\"org3d42cee\"></a></p>\n\n<h1 id=\"sur-les-réseaux\">Sur les réseaux</h1>\n\n<p>Vous pouvez me retrouver sur différent réseau sous le blase : <strong>La Bécasse</strong></p>\n<ul><li>sur mastodon : <a href=\"https://mastodon.social/@LaBecasse\" rel=\"nofollow\">LaBecasse@mastodon.social</a></li>\n<li>sur twitter : <a href=\"https://twitter.com/labecasse_\" rel=\"nofollow\">@labecasse_</a> (en pause)</li></ul>\n\n<p><a id=\"org5ec8c10\"></a></p>\n\n<h1 id=\"chère-de-prince\">Chère de Prince</h1>\n\n<p>Je suis l&#39;administrateur du <a href=\"https://chatons.org/\" rel=\"nofollow\">chaton</a> : <a href=\"https://cheredeprince.net\" rel=\"nofollow\">Chère de Prince</a>.</p>\n\n<p><a id=\"org30e38b0\"></a></p>\n\n<h1 id=\"thèse\">Thèse</h1>\n\n<p>J&#39;ai aussi une <a href=\"http://pages.saclay.inria.fr/maxime.buron/\" rel=\"nofollow\">thèse en cours</a>.</p>\n\n<p><a id=\"org0e2d643\"></a></p>\n\n<h1 id=\"pour-me-contacter\">Pour me contacter</h1>\n<ul><li>par mail : maxime at buron.coffee</li>\n<li>sur <a href=\"https://matrix.org/\" rel=\"nofollow\">matrix</a> : @emixam150 : cheredeprince.net</li></ul>\n"
  },
  "tag": [
    {
      "type": "Hashtag",
      "href": "https://buron.coffee/tag:org3d42cee",
      "name": "#org3d42cee"
    },
    {
      "type": "Hashtag",
      "href": "https://buron.coffee/tag:org5ec8c10",
      "name": "#org5ec8c10"
    },
    {
      "type": "Hashtag",
      "href": "https://buron.coffee/tag:org30e38b0",
      "name": "#org30e38b0"
    },
    {
      "type": "Hashtag",
      "href": "https://buron.coffee/tag:org0e2d643",
      "name": "#org0e2d643"
    }
  ]
}
curl -H "Accept: application/activity+json" https://buron.coffee/|jq .
{
  "@context": [
    "https://www.w3.org/ns/activitystreams"
  ],
  "type": "Person",
  "id": "https://buron.coffee/api/collections/becasse",
  "inbox": "https://buron.coffee/api/collections/becasse/inbox",
  "outbox": "https://buron.coffee/api/collections/becasse/outbox",
  "preferredUsername": "becasse",
  "url": "https://buron.coffee/",
  "name": "Notes en bas de toile",
  "icon": {
    "type": "Image",
    "mediaType": "image/png",
    "url": "https://buron.coffee/img/avatars/n.png"
  },
  "following": "https://buron.coffee/api/collections/becasse/following",
  "followers": "https://buron.coffee/api/collections/becasse/followers",
  "summary": "",
  "publicKey": {
    "id": "https://buron.coffee/api/collections/becasse#main-key",
    "owner": "https://buron.coffee/api/collections/becasse",
    "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt0YbiewxvvDjoV5yiwya\nBFZmOOBLPZJAkp3ounbvkYlinslpBXCA8qQWER6XrMemaEBZxfXPvuKNCJEnGZZJ\nI17nbcgcMoqfw7l8qJBEx06MSOxKkcdVAcHLkteHMw4K3xw4M2t+PoA3XZt2AWts\nHPBgaosGCRVAR89KUr0jehOBY2KrQWlWIWGnomKsfUNZ3WcJ7NsocWxeycKU/U3+\nH4g6SzjkjhJgHX2D+oO7APiWSp5F107Imo5aV5elfie7wAKsDiQYVv/URGpYQyjl\nkkW/6dd78ZskV4Yof6LS2Ie4v/JI9EVSf4hgiWGrGSUbmHUEij5ZV9Xz2xKJVMXf\nZwIDAQAB\n-----END PUBLIC KEY-----\n"
  },
  "endpoints": {}
}

Les APIs

On peut interagir avec des serveurs implémentant ActivityPub en utilisant leur API.

Blog

Dokieli

Dokieli is a decentralized blog system based on many standard of the linked data.

Write Freely

The main website Write Freely

Discussion place https://discuss.write.as

Installation Instruction

First, create a user and a database in mysql for it

CREATE USER 'becasse'@'localhost' IDENTIFIED BY 'becasse';
CREATE DATABASE writefreely;
GRANT ALL PRIVILEGES ON writefreely . * TO 'becasse'@'localhost';
FLUSH PRIVILEGES;
-- show grant
GRANTS becasse;
wget https://github.com/writeas/writefreely/releases/download/v0.7.1/writefreely_0.7.1_linux_amd64.tar.gz
tar xzf writefreely_0.7.1_linux_amd64.tar.gz

https://writefreely.org/start

LaTeX

Customization of theme

It is possible to edit the file under templates/, but only the updated files will be affected. There must be a cache somewhere …

Plume

Sloph

Sloph is a blog engine developed by rhiaro.

ActivityPub For Drupal

The module for drupal have been developed by swentel.

TODO Static activitypub support for blog

It started to test something on https://buron.coffee/notes/entity/imagerie using content negotiation and reusing the webfinger of writefreely.

curl -H "Accept: application/activity+json" https://buron.coffee/notes/entity/imagerie|jq .
{
  "@context": [
    "https://www.w3.org/ns/activitystreams"
  ],
  "type": "Article",
  "id": "https://buron.coffee/notes/entity/imagerie",
  "published": "2019-01-20T11:19:11+01:00",
  "inReplyTo": null,
  "url": "https://buron.coffee/notes/entity/imagerie",
  "attributedTo": "https://buron.coffee/api/collections/becasse",
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "cc": [
    "https://buron.coffee/api/collections/becasse/followers"
  ],
  "name": "Imagerie",
  "summary": "Ici des images trouvées sur les internets et autres lieux. ",
  "content": "",
  "contentMap": {
    "fr": ""
  },
  "tag": []
}

This post accepts webmentions. Do you have the URL to your post?

Otherwise, send your comment on my service.

Or interact from the fediverse with your username: