Wat is een Labeler?
Een Labeler is een service die labels toekent aan content op het AT Protocol (Bluesky). Je kunt hem inzetten voor moderatie, contentclassificatie, eigen filters en meer. Het is nodig dat je vooraf het concept van een Labeler begrijpt. Starter kits voor andere talen zijn ook nuttig als referentie. Voorbeeldimplementaties:Voorbereiding
Om een Labeler te draaien heb je het volgende nodig.- Een nieuw Bluesky-account speciaal voor de Labeler (gebruik niet je dagelijkse account)
- Een nieuw Laravel-project speciaal voor de Labeler (aparte projecten worden aanbevolen)
- Een (sub)domein
- Een productie-Linux-server zoals een VPS of AWS EC2 (Laravel Cloud, Laravel Vapor en Vercel zijn niet mogelijk)
Als je alleen shared hosting kunt gebruiken, is het lastig om een Labeler te draaien.
Extra pakketten installeren
Configuratie
Genereer eerst een privésleutel..env.
Een Labeler-klasse maken
Maak een eigen Labeler-klasse die erft vanAbstractLabeler. Het bestand mag op een willekeurige plek staan.
Voorbeeldimplementatie: ArtisanLabeler.php
labels()
Geeft de labeldefinities terug. De constantedefinities in de skyware-starterkit zijn een goede referentie.subscribeLabels()
Wordt direct na het opzetten van de WebSocket-verbinding aangeroepen. GeeftSubscribeLabelResponse-objecten terug als iterator.
emitEvent()
Wordt aangeroepen wanneer er een request binnenkomt om een label toe te voegen of te verwijderen. GeeftUnsignedLabel-objecten terug als iterator.
saveLabel()
Slaat het ondertekende label op in de database. Geeft eenSavedLabel terug.
createReport()
Wordt aangeroepen wanneer een gebruiker bijvoorbeeld een appeal instuurt.queryLabels()
Query’t labels via de HTTP-API in plaats van WebSocket. Wordt niet gebruikt door het officiële Bluesky, maar door derde partijen. Geef een lege array terug als je dit niet nodig hebt.Registreren in de AppServiceProvider
Registreer de gemaakte Labeler-klasse inAppServiceProvider::boot().
Het account instellen
Initialiseer het account als Labeler-account.Labeldefinities declareren
Registreer de labeldefinities bij het Labeler-account.Overige commands
Labeldefinities verwijderen:Draaien op Laravel Forge
Start na het inschakelen van SSL de Labeler-server met de volgende configuratie.nginx-configuratie
Voeg drielocation-blokken toe aan de nginx-configuratie van Forge.
Deployscript
Stop de Labeler-server tijdens het deployen. Na het stoppen herstart Supervisor deze automatisch.Achtergrondproces (daemon) instellen
Kies in het scherm voor achtergrondprocessen van Forge het tabblad Custom in plaats van het tabblad Queue Worker. Command:bluesky:ws of bluesky:firehose is niet mogelijk.
Labels toevoegen
Hoe je labels toekent, hangt af van de implementatie van je applicatie. In het voorbeeld wordt de eventfunctionaliteit van Laravel gebruikt om een label toe te kennen “wanneer iemand je volgt”.Source: docs/labeler.md
Sample: invokable/laralabeler