Seguendo un Attore ActivityPub

Questo argomento tratta come seguire un Attore ActivityPub in Discourse con il plugin Discourse ActivityPub, e fa seguito a Impostazione di un Attore ActivityPub. Se non sei sicuro di cosa significhi, vai prima all’argomento Plugin Discourse ActivityPub.

Istruzioni

Per seguire un Attore ActivityPub:

  1. Imposta un attore per la Categoria o il Tag che desideri seguire.
  2. Ottieni l’“handle” dell’Attore che desideri seguire (vedi sotto).
  3. Vai alla scheda “Federazione” nella vista dell’elenco degli argomenti della Categoria o del Tag dal Passaggio 1.
  4. Fai clic su “Nuovo Follow”, inserisci l’handle dal Passaggio 2 e fai clic su “Trova” (vedi sotto).
  5. Fai clic su “Follow” quando l’Attore viene trovato.

Handle degli Attori

La maggior parte dei servizi ActivityPub utilizza un protocollo chiamato WebFinger per consentire agli Attori di essere scoperti tramite un “handle”. Questo è tipicamente nel formato

username@domain

A volte lo username è preceduto da un simbolo, ad esempio @.

Discourse

Ottieni l’handle di un Attore Discourse andando alla scheda “Federazione” nella vista dell’elenco degli argomenti dell’Attore.

L’handle nello screenshot è announcements@test.pavilion.tech

Mastodon

Ottieni l’handle di un Attore Mastodon dal profilo dell’Attore

L’handle nello screenshot è @angusmcleod@mastodon.social

Trovare un Attore

Quando inserisci un handle di Attore nella modale “Nuovo Follow” e fai clic su “Trova”, il plugin cerca l’handle utilizzando WebFinger. Questa ricerca potrebbe non avere successo. Se non vengono restituiti risultati:

  1. Controlla l’handle che hai copiato.
  2. Verifica che ci sia un server attivo abilitato per ActivityPub al dominio dell’handle.
  3. Prova a cercare l’handle su un altro servizio ActivityPub.

Se hai provato quanto sopra e ritieni che il problema possa riguardare il tuo sito o il plugin:

  1. Verifica che l’impostazione del sito activity pub verbose logging sia abilitata.
  2. Esegui nuovamente la ricerca.
  3. Controlla /logs per i log etichettati “ActivityPub”.
  4. Segnala eventuali problemi riscontrati in una risposta a questo argomento.
2 Mi Piace

Ciao @angus, grazie per la tua ottima guida!

Finora sono riuscito a federare post e risposte da e verso Discourse e Mastodon, ma non tra Discourse e Discourse. Le mie categorie Discourse federate sono aperte a tutti, ma le istanze richiedono un invito prima che un account possa essere creato. Pensi che questo possa avere a che fare con qualcosa?

Inoltre, le risposte ai post federati fatti da altre persone non vengono federate alle altre istanze coinvolte nel thread. È normale e previsto?

Grazie!

Potrebbe! Lasciami testare questo scenario e ti farò sapere.

Discourse pubblica le attività in un topic a tutti i partecipanti del topic, anche se non stanno seguendo l’attore pertinente (ad esempio, categoria o tag). Quindi questo non è previsto. Potrebbe essere un problema dal lato di Discourse (controlla i log e fammi sapere se vedi qualcosa). Potrebbe anche essere un problema sulla piattaforma su cui ti aspetti di vedere le risposte.

Forse potresti farmi un esempio?

1 Mi Piace

Mi dispiace @angus, devo migrare la mia istanza su un altro server. Quando ho attivato ActivityPub nelle mie due istanze Discourse, il mio Raspberry Pi 4 da 8 GB non è riuscito a gestire il traffico di ActivityPub, continuando a surriscaldarsi e a bloccarsi. Fornirò un aggiornamento se tenterò di far funzionare ActivityPub su un’istanza sperimentale.

Hai suggerimenti per rimuovere completamente un dominio di app dopo averlo attivato su ActivityPub?

Sono praticamente impossibilitato a utilizzare i sottodomini precedenti a causa dell’intenso traffico che stanno ancora ricevendo, anche se ho smesso di seguire gli account della categoria sull’istanza Mastodon che sto utilizzando.

Ciao Rob, mi dispiace sentire che stai riscontrando problemi. Il plugin ActivityPub ha già diverse protezioni per gestire carichi di traffico elevati, in particolare queste impostazioni del sito:

  • activity_pub_rate_limit_post_to_inbox_per_minute: Il valore predefinito è 10. Ciò significa che, per impostazione predefinita, vengono elaborate 10 richieste POST in arrivo per IP al minuto. Prova ad abbassarlo.

  • activity_pub_rate_limit_get_objects_per_minute: Il valore predefinito è 30 per IP al minuto. Ciò significa che, per impostazione predefinita, vengono elaborate 30 richieste GET per IP al minuto. Prova ad abbassarlo.

  • activity_pub_blocked_request_origins: Questo ti permette di bloccare tutte le richieste provenienti da domini che potrebbero causarti problemi.

  • activity_pub_allowed_request_origins: Questo ti permette di limitare le richieste a determinati domini, il che significa che le richieste da tutte le altre origini vengono bloccate.

Se il carico di traffico elevato è effettivamente la causa del tuo problema, il modo per affrontarlo è utilizzare le protezioni elencate sopra, a meno che tu non abbia il controllo sui server da cui proviene il traffico.

Grazie per il consiglio, Angus. Lo apprezzo molto. Configurerò un’altra istanza di Discourse su un server sperimentale che non influenzerà i miei altri servizi e riproverò seguendo i tuoi suggerimenti.

Non sono sicuro di quale livello della mia infrastruttura sia la causa del problema, ma potrebbe essere il reverse proxy.

Sto usando Cosmos Server come monitor del server, interfaccia utente per la gestione dei container Docker e reverse proxy per i miei altri container Docker come Discourse e altri servizi. Ritengo che il reverse proxy potrebbe dover essere configurato in modo simile per un rate limiting adeguato per le connessioni ActivityPub in entrata.

Potrebbe essere stato il sovraccarico delle richieste di sincronizzazione ActivityPub in entrata dal server Mastodon esterno che ha sovraccaricato il reverse proxy e causato il raggiungimento del massimo utilizzo di RAM, CPU e rete e il surriscaldamento.

Aggiornerò di nuovo una volta ricevuta la mia prossima spedizione di Raspberry Pi e avrò una scheda di riserva da utilizzare come server sperimentale.

Grazie per i tuoi suggerimenti!

1 Mi Piace

Grazie per i tuoi ottimi video. Mi è sfuggita una spiegazione su come i follower possono rispondere/interagire con tali argomenti? Mi chiedo se potrebbe creare un “server” leggero per il team dei social media.

Qual è il motivo più probabile per l’errore 403 quando un utente Mastodon cerca di trovare un attore Discourse?

Su Mastodon, quell’handle non trova nulla e Discourse restituisce questo:

GET request received by https://foorumi.katiska.eu/ap/actor/2a8f2bdb5a547366558a0906d6bf6a5c failed: 403 Forbidden

E lo stesso per /inbox