Skip to main content
Labeler è una funzionalità per utenti avanzati. Poiché deve essere eseguito come server continuativamente, è pensato per chi usa Laravel Forge o è in grado di configurare un server autonomamente. Non è consigliato ai principianti di Laravel. Non c’è supporto.Laravel Cloud non è supportato. Labeler richiede di avviare un server WebSocket sempre attivo e di modificare la configurazione di nginx; Laravel Cloud non permette di configurare nginx, quindi non è possibile eseguire Labeler.

Cos’è Labeler

Labeler è un servizio che applica etichette (label) ai contenuti su AT Protocol (Bluesky). Si può usare per moderazione, classificazione dei contenuti, filtri personalizzati e altro. È necessario comprendere in anticipo il concetto di Labeler. Anche gli starter kit per altri linguaggi sono un utile riferimento. Implementazione di esempio:

Preparazione

Per far funzionare Labeler ti serve quanto segue.
  • Un nuovo account Bluesky dedicato al Labeler (non usare l’account personale che usi abitualmente)
  • Un nuovo progetto Laravel dedicato al Labeler (è consigliato tenere i progetti separati)
  • Un (sotto)dominio
  • Un server Linux di produzione, come VPS o AWS EC2 (Laravel Cloud, Laravel Vapor e Vercel non sono utilizzabili)
Se puoi usare solo hosting condiviso, gestire un Labeler è difficile.

Installazione di pacchetti aggiuntivi

Configurazione

Per prima cosa genera la chiave privata.
Aggiungi la chiave privata generata e i valori di configurazione correlati a .env.

Creazione della classe Labeler

Crea una classe Labeler personalizzata che estende AbstractLabeler. Il file puoi collocarlo dove preferisci.
Il pacchetto si occupa della maggior parte del lavoro del Labeler, quindi implementi soltanto le parti che vuoi personalizzare.
Implementazione di esempio: ArtisanLabeler.php

labels()

Restituisce le definizioni delle label. Le costanti definite nello starter kit skyware sono un buon riferimento.

subscribeLabels()

Viene chiamato subito dopo la connessione WebSocket. Restituisci SubscribeLabelResponse come iterator.

emitEvent()

Viene chiamato quando arriva una richiesta di aggiunta o rimozione di una label. Restituisci UnsignedLabel come iterator.

saveLabel()

Salva la label firmata nel database. Restituisce un SavedLabel.
Per migrazione e modello Eloquent, consulta gli esempi nel pacchetto.

createReport()

Viene chiamato quando arriva un ricorso o simile da un utente.

queryLabels()

Query delle label via API HTTP al posto del WebSocket. Non è usato da Bluesky ufficiale ma da terze parti. Se non ti serve, restituisci un array vuoto.

Registrazione in AppServiceProvider

Registra la classe Labeler creata in AppServiceProvider::boot().

Setup dell’account

Inizializza l’account come Labeler.
In questo comando inserisci l’effettiva password dell’account e non l’app password. Durante l’operazione ti arriverà un’email di conferma “PLC Update Operation Requested”: segui le istruzioni del comando per inserirla.
Se l’URL dell’endpoint è configurato correttamente puoi eseguirlo anche dall’ambiente locale.

Dichiarazione delle definizioni di label

Registra le definizioni di label sull’account Labeler.
Anche questo comando può essere eseguito dall’ambiente locale.

Altri comandi

Eliminazione delle definizioni di label:
Riportare l’account Labeler ad account normale:

Esecuzione su Laravel Forge

Dopo aver abilitato SSL, avvia il server Labeler con la seguente configurazione.

Configurazione nginx

Aggiungi 3 blocchi location alla configurazione nginx di Forge.

Script di deploy

Al deploy ferma il server Labeler. Dopo lo stop, Supervisor lo riavvierà automaticamente.

Configurazione del processo in background (daemon)

Nella schermata di configurazione dei background process di Forge, seleziona la scheda Custom invece di Queue Worker. Comando:
Se lo avvii insieme a Jetstream o Firehose, specifica le opzioni. Non puoi eseguirlo contemporaneamente ai comandi bluesky:ws o bluesky:firehose.

Aggiunta di label

Come applichi le label dipende dall’implementazione della tua applicazione. Nell’esempio, usando il sistema di eventi di Laravel, viene applicata una label “quando ricevi un follow”.
Per gestire eventuali eventi persi, è consigliato applicare label anche tramite task scheduler.
Ultima modifica il 13 luglio 2026