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
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'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'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'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'est histoire de prendre un peu de distance avec les histoires des autres.</p>\n\n<p>J'ouvre ce blog pour raconter mes propres histoires qui bien que pouvant être illustrer par quelques photos, n'ont pas leur place dans <a href=\"https://piwigo.buron.coffee/\" rel=\"nofollow\">mon album photo</a>.</p>\n\n<p>J'ouvre ce blog, parce que ça n'est simplement un blog, c'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'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'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'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'est histoire de prendre un peu de distance avec les histoires des autres.</p>\n\n<p>J'ouvre ce blog pour raconter mes propres histoires qui bien que pouvant être illustrer par quelques photos, n'ont pas leur place dans <a href=\"https://piwigo.buron.coffee/\" rel=\"nofollow\">mon album photo</a>.</p>\n\n<p>J'ouvre ce blog, parce que ça n'est simplement un blog, c'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'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'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
LaTeX
MathJax is supported by default: https://discuss.write.as/t/new-formatting-syntaxes/43
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": [] }
Resources
- statistic website about the fediverse: https://the-federation.info/
- https://activitypub.rocks/
- https://fediverse.party/en/fediverse/
- Guide for new ActivityPub implementers