Met Pleroma richt je een social networking instantie in waarmee je onderdeel wordt van de Fediverse. Onze ervaringen met een Raspberry Pi als Pleroma server.

Matto Fransen

 

Pleroma is een onderdeel van de Fediverse. De Fediverse is een wereldwijd netwerk van servers ingericht voor social networking, microblogging, blogging etc., die via open protocollen onderling verbonden zijn. In tegenstelling tot bijvoorbeeld Facebook of Twitter, is er niet één centrale omgeving waar iedere gebruiker op inlogt, maar bestaat de Fediverse uit een groot aantal zelfstandige omgevingen, die ‘instances’ genoemd worden. Het is dus een federatie van systemen. Op deze systemen kunnen gebruikers identiteiten aanmaken waarmee zij communiceren met andere gebruikers en dankzij de open protocollen ook met gebruikers op andere instances.

 

Geboorte

De komst van GNU Social, in 2008, kan gezien worden als de geboorte van de Fediverse. Inmiddels is dit verder uitgegroeid, met als meest bekende onderdelen Diaspora, GNU Social, Mastodon en Pixelfed. Diaspora is een social networking omgeving die gebruik maakt van het OStatus protocol en het Diaspora federation protocol. GNU Social en Mastodon zijn microblogging omgevingen en gebruiken het ActivityPub protocol. Pixelfed is voor het delen van afbeeldingen en gebruikt ook het ActitiyPub protocol.

 

Pleroma is eveneens een microblogging omgeving die gebruik maakt van het ActitiyPub protocol, waardoor je berichten uitwisselt met andere delen van de Fediverse, die ook ActitiyPub gebruiken, zoals bijvoorbeeld Mastodon.

 

Een belangrijk kenmerk van de Fediverse is dat het is opgebouwd uit een groot aantal zelf beheerde systemen. Er is dus geen centrale eigenaar van bijvoorbeeld Mastodon. Er zijn geen algoritmes die ten behoeve van commerciële doelen je tijdlijn beïnvloeden, je krijgt deze gewoon in chronologische volgorde. Reclame kom je niet tegen in de Fediverse en niemand kan de Fediverse met één druk op de knop uitzetten.

Federatieve tijdlijn

Servers in de Fediverse worden ‘instances’ genoemd. Deze instances staan op zichzelf, maar wisselen wel berichten met elkaar uit. Hierdoor kan een gebruiker van de ene instance een gebruiker van een andere instance ‘volgen’, berichten sturen, enzovoorts. Doordat de instances op zichzelf staan, bestaat er geen wereldwijde tijdlijn, zoals je die wel bij bijvoorbeeld Twitter ziet. Een instance heeft een lokale tijdlijn. Dit is de verzameling van alle (niet afgeschermde) berichten van alle gebruikers van de instance. Verder kent de instance een federatieve tijdlijn. Dit is een verzameling van alle berichten die de instance kent, van zowel de eigen gebruikers als van gebruikers van andere instances. Wanneer bijvoorbeeld een gebruiker van fosstodon.org een gebruiker op mastodon.social gaat volgen, dan leidt dat er toe dat de mastodon.social de berichten van deze gebruiker naar fosstodon.org pusht. Hierdoor verschijnen deze berichten in de tijdlijn van de betreffende fosstodon.org-gebruiker, maar ook in de federatieve tijdlijn van fosstodon.org.

 

Binnen de Fediverse kunnen gebruikers op elkaars berichten reageren. Stel nu dat er een discussie ontstaat tussen de gebruikers van vier verschillende instances. In het begin van de Fediverse was dit een probleem. Wanneer je niet al deze gebruikers volgde, dan kreeg je een fragmentarisch beeld van de discussie, sommige berichten zag je wel en andere niet. Dit kon soms tot grote verwarring leiden. Met de komst van Mastodon is dit opgelost. Wanneer je een van de gebruikers volgt en daardoor een stukje van een discussie in je tijdlijn verschijnt, dan wordt op de achtergrond de hele discussie binnengehaald.

 

Hashtags

Het federatieve karakter van de Fediverse heeft ook invloed op het werken met hashtags. Wanneer je in je cliënt een zoekopdracht geeft op een bepaalde hashtag dan krijg je de berichten met die hashtag te zien, voor zover je instance die kent. Dit zijn wederom de berichten van de eigen instance-gebuikers, plus die van gevolgde gebruikers van andere instances. Dat zijn dus lang niet alle berichten in de Fediverse die met die hashtag zijn gepost.

 

Wanneer je op zoek gaat naar nieuwe, interessante gebruikers om te volgen, dan kun je zoeken op hashtag, maar of je veel vindt is maar de vraag. Dit is een van de gevolgen van het basisontwerp van de Fediverse. Wanneer je lid bent van een instance met veel leden, dan kan de federatieve tijdlijn overigens wel leuke verrassingen bevatten en kun je zo mensen vinden die de moeite waard zijn om te volgen.

 

Pleroma

Iedereen die wil kan een eigen systeem (bijv. Diaspora, GNU Social, Mastodon of Pleroma) installeren en deel uitmaken van de Fediverse. Al deze systemen vragen vaardigheden en stellen eisen aan de hardware. In dit artikel richten we ons op Pleroma, omdat dit het makkelijkst installeert en een vrij lichte applicatie is.

Doordat Pleroma het makkelijkst installeert, vind je in de Pleromawereld veel kleine instances, met weinig leden. Dit in tegenstelling tot Mastodon, waar instances over het algemeen juist een groot aantal leden hebben. Dit is echter ook de charme van Pleroma. Op grote instances is de onderlinge verbondenheid van de gebruikers vaak veel kleiner. Men is lid van zo’n instance, bijvoorbeeld omdat het een instance was die voor registratie open stond, of omdat men een gemeenschappelijk interessegebied heeft, zoals bijvoorbeeld bij de Mastodon instance bsd.network.

 

Een kleine instance kun je met een bepaald doel in het leven roepen, bijvoorbeeld voor de leden van je club, de bewoners in je straat, of gewoon voor een paar vrienden. De lokale tijdlijn wordt dan veel betekenisvoller en de instance kan binnen de betreffende gemeenschap echt toegevoegde waarde hebben. Bijzonder aan Pleroma is ook dat het een ingebouwde chatfunctionaliteit heeft, wat ook beter past bij een kleine gemeenschap. Ga je een Pleroma server inrichten met het idee om straks een groepje mensen uit te nodigen hiervan gebruik te maken? Bedenk dan dat niet altijd iedereen zich even prettig gedraagt. Maak vooraf goede afspraken over gedragsregels en hoe je handelt wanneer iemand zich daar niet aan houdt.

 

Pleroma is ook goed geschikt wanneer je een eigen, persoonlijke instance op wil zetten. Vanuit je instance kun je in de Fediverse gebruikers van andere instances volgen, mits die met een passend protocol werken. Gebruikers van een Mastodon instance kun je bijvoorbeeld wel volgen, maar van een Diaspora instance niet. Dat geldt overigens ook voor de Mastdon-gebruikers, ook zij kunnen geen Diaspora-gebruikers volgen.

 

Subdomein

Wanneer je in je thuisnetwerk een Pleroma server wil draaien, die ook onderdeel is van de Fediverse, dan is het belangrijk te weten dat je Pleroma instance vanuit het internet te benaderen moet zijn en over een geldig certificaat moet beschikken. Een self-signed certificaat voldoet niet. Heb je al een webserver draaien? Dan betekent dit dat je een apart subdomein voor je Pleroma instance moet hebben, inclusief bijbehorend certificaat. Verder heeft Pleroma een reverse proxy nodig, zoals bijvoorbeeld NGINX.

 

Wij hadden al een webserver op OpenBSD draaien en kozen daarom om de standaard in OpenBSD mee geïnstalleerde Relayd als reverse proxy te gebruiken. Onze webserver gebruikt een Letsencrypt certificaat, met een kleine aanpassing in de configuratie vraag je die ook voor een tweede subdomein aan.

 

Raspberry Pi

Pleroma laat zich goed op een Raspberry Pi installeren, maar kies wel een voldoende krachtig model. Wij hebben in eerste instantie Pleroma op een Raspberry Pi 3 model A+ met 512 Mb geheugen geïnstalleerd, maar dit gaf geen bevredigend resultaat. Het systeem wordt heel erg traag en de chip erg warm. Op een gegeven moment zagen wij een load van boven de drie.

 

Hierna hebben wij Pleroma op een Raspberry Pi 4 met 4 Gb geheugen geïnstalleerd, en hier draait het als een zonnetje. De Raspberry Pi blijft snel reageren, met een load die varieert tussen 0.08 en 0.15.

 

Overigens kun je Pleroma ook op gewone servers installeren. De Pleroma website beschrijft de installatie op Debian en Debian-achtige systemen zoals bijvoorbeeld Ubuntu, maar ook voor Alpine Linux en voor Arch Linux systemen. Ook voor FreeBSD en OpenBSD is een installatieprocedure beschreven.

 

De website beschrijft twee verschillende installatiemethoden, namelijk installatie vanaf source en installatie van een zogenoemde OTP release. Deze laatste is het meest eenvoudig.

 

Overigens zijn er mensen die een kant-en-klare Raspberry Pi image of een Raspberry Pi Docker-image aanbieden, maar wij gaan er vanuit dat je juist voor een eigen instance kiest om zelf alles onder controle te hebben.

 

Wij voorzagen onze Rapsberry Pi van een nieuwe, schone installatie van de meest recente versie van de 64-bits variant van Raspberry Pi OS Lite, in ons geval de versie van 7 mei 2021. Hierna volgden wij de installatieprocedure voor Debian van de OTP release, wat probleemloos verliep. Nadat de installatie klaar is en Pleroma is opgestart, kun je met Curl controleren dat Pleroma draait met: curl http://localhost:4000/api/v1/instance.

 

Controleer of je dit via Systemd kunt stoppen en starten. Hierna configureer je de reverse proxy inclusief het juiste certificaat, zodanig dat je instance op het betreffende subdomein via https te benaderen is.

 

Wanneer dit allemaal werkt, geef je in de configuratie van Pleroma aan dat je met andere instances berichten wilt uitwisselen door onderdeel te worden van de Fediverse. Voeg in het configuratiebestand in /etc/pleroma onder het kopje ”config :pleroma, :instance” een regel toe met ”federating: true”, verder hebben wij meteen ”registrations_open” op ”false” gezet. Na het herstarten van Pleroma en het toevoegen van een gebruiker (met pleroma_ctl) kun je dan over https op het frontend inloggen en mensen gaan volgen.

 

Wij gebruikten een 64 Gb micro SD-kaartje voor de installatie van Raspberry Pi OS Lite en Pleroma. Deze installatie neemt bij elkaar ongeveer 3 Gb ruimte in beslag. Na enkele weken gebruik van Pleroma is dit met zo’n 400 Mb gegroeid. Deze groei is natuurlijk erg afhankelijk van hoe je Pleroma gebruikt en met hoeveel mensen.

 

Frontend

Bij de installatie is het frontend meteen mee geïnstalleerd. Zonder dat je als admin iets hoeft te configureren, kunnen gebruikers kiezen uit verschillende ‘themes’. Verder kiezen gebruikers hun eigen ‘avatar’, ‘profile-banner’ en/of ‘profile-achtergrond’.

Screenshot 1: het standaard theme van Pleroma.

 

Het frontend biedt de gebruiker opties om een export te maken van de identiteiten die je volgt, of om deze te importeren. Ook kun je eventuele ‘blocks’ exporteren en importeren. Dit zijn identiteiten die je geblokkeerd hebt. De exportbestanden die je downloadt zijn in CSV-format. Dit maakt het makkelijk wanneer je later nog eens naar een andere instance wilt verhuizen.

 

Cliënt

Het voordeel van standaard protocollen is dat je met een cliënt naar keuze kunt werken. Desgewenst installeer je op je Pleroma-server een alternatief frontend, maar je kunt ook op je desktop of mobiele apparaat een cliënt installeren. Wij installeerden Whalebird, dit is een Pleroma- en Mastodon desktop cliënt, zie screenshot 2. Op ons Android apparaat hebben wij bijvoorbeeld via F-droid de Mastodon cliënt Husky geïnstalleerd. Zie screenshot 3.

Screenshot 2: Whalebird desktop client.

 

Screenshot 3: Husky Android client.

 

Je kunt ook bitlbee als gateway inzetten en vanuit je IRC-cliënt communiceren. Daarnaast bestaan er ook commandline cliënts waarmee je je tijdlijn kunt volgen of berichten kunt plaatsen.