¿Qué es Labeler?
Labeler es un servicio de AT Protocol (Bluesky) que aplica etiquetas al contenido. Se puede aprovechar para moderación, clasificación de contenido, filtrado personalizado y más. Es necesario entender previamente el concepto de Labeler. Los starter kits para otros lenguajes también son buenas referencias. Implementaciones de ejemplo:Preparación
Para ejecutar Labeler necesitas lo siguiente.- Una cuenta nueva de Bluesky dedicada al Labeler (no uses tu cuenta habitual)
- Un proyecto Laravel nuevo dedicado al Labeler (se recomienda separarlo del resto)
- Un (sub)dominio
- Un servidor Linux de producción, como VPS o AWS EC2 (no valen Laravel Cloud, Laravel Vapor ni Vercel)
Si solo dispones de hosting compartido, es difícil operar Labeler.
Instalación de paquetes adicionales
Configuración
Primero, genera la clave privada..env.
Crear la clase Labeler
Crea una clase Labeler propia que herede deAbstractLabeler. Puedes ubicar el archivo donde prefieras.
Implementación de ejemplo: ArtisanLabeler.php
labels()
Devuelve las definiciones de etiqueta. Las constantes del starter kit de skyware sirven como referencia.subscribeLabels()
Se invoca justo después de la conexión WebSocket. Devuelve un iterador deSubscribeLabelResponse.
emitEvent()
Se invoca cuando llega una solicitud para añadir o eliminar etiquetas. Devuelve un iterador deUnsignedLabel.
saveLabel()
Guarda la etiqueta firmada en la base de datos. Devuelve unSavedLabel.
createReport()
Se invoca cuando el usuario envía una apelación u otro tipo de informe.queryLabels()
Consulta las etiquetas vía HTTP API en lugar de WebSocket. Bluesky no lo utiliza oficialmente; lo usan terceros. Si no lo necesitas, devuelve un array vacío.Registro en AppServiceProvider
Registra la clase Labeler creada enAppServiceProvider::boot().
Configuración de la cuenta
Inicializa la cuenta como cuenta Labeler.Declaración de las definiciones de etiquetas
Registra las definiciones de etiquetas en la cuenta Labeler.Otros comandos
Eliminar las definiciones de etiquetas:Ejecución con Laravel Forge
Tras activar el SSL, inicia el servidor Labeler con la siguiente configuración.Configuración de nginx
Añade tres bloqueslocation a la configuración nginx de Forge.
Script de despliegue
Detén el servidor Labeler al desplegar. Después de detenerlo, Supervisor lo reiniciará automáticamente.Configuración del proceso en segundo plano (daemon)
En la pantalla de configuración de procesos en segundo plano de Forge, selecciona la pestaña Custom, no la de Queue Worker. Comando:bluesky:ws o bluesky:firehose.
Aplicar etiquetas
Cómo aplicas las etiquetas depende de la implementación de tu aplicación. En el ejemplo se usan los eventos de Laravel para aplicar etiquetas “cuando alguien te sigue”.Source: docs/labeler.md
Sample: invokable/laralabeler