Nextcloud Talk (plugin)

Status: obslugiwany przez plugin (bot webhookowy). Wiadomosci bezposrednie, pokoje, reakcje i wiadomosci markdown sa obslugiwane.

Wymagany plugin

Nextcloud Talk jest dostarczany jako plugin i nie jest dolaczony do instalacji podstawowej.

Instalacja przez CLI (rejestr npm):

openclaw plugins install @openclaw/nextcloud-talk

Lokalny checkout (przy uruchomieniu z repozytorium git):

openclaw plugins install ./extensions/nextcloud-talk

Jesli wybierzesz Nextcloud Talk podczas konfiguracji/onboardingu i zostanie wykryty checkout git, OpenClaw automatycznie zaproponuje sciezke instalacji lokalnej.

Szczegoly: Pluginy

Szybka konfiguracja (dla poczatkujacych)

  1. Zainstaluj plugin Nextcloud Talk.

  2. Na serwerze Nextcloud utworz bota:

    ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature reaction
  3. Wlacz bota w ustawieniach pokoju docelowego.

  4. Skonfiguruj OpenClaw:

    • Konfiguracja: channels.nextcloud-talk.baseUrl + channels.nextcloud-talk.botSecret
    • Lub zmienne: NEXTCLOUD_TALK_BOT_SECRET (tylko domyslne konto)
  5. Zrestartuj gateway (lub zakoncz onboarding).

Minimalna konfiguracja:

{
  channels: {
    "nextcloud-talk": {
      enabled: true,
      baseUrl: "https://cloud.example.com",
      botSecret: "shared-secret",
      dmPolicy: "pairing",
    },
  },
}

Uwagi

  • Boty nie moga inicjowac DM. Uzytkownik musi pierwszy napisac do bota.
  • URL webhooka musi byc osiagalny przez Gateway; ustaw webhookPublicUrl jesli jestes za proxy.
  • Przesylanie mediow nie jest obslugiwane przez API bota; media sa wysylane jako adresy URL.
  • Payload webhooka nie rozroznia DM od pokoi; ustaw apiUser + apiPassword aby wlaczyc wyszukiwanie typow pokoi (w przeciwnym razie DM sa traktowane jako pokoje).

Kontrola dostepu (DM)

  • Domyslnie: channels.nextcloud-talk.dmPolicy = "pairing". Nieznani nadawcy otrzymuja kod parowania.
  • Zatwierdzanie przez:
    • openclaw pairing list nextcloud-talk
    • openclaw pairing approve nextcloud-talk <CODE>
  • Publiczne DM: channels.nextcloud-talk.dmPolicy="open" plus channels.nextcloud-talk.allowFrom=["*"].
  • allowFrom dopasowuje tylko ID uzytkownikow Nextcloud; nazwy wyswietlane sa ignorowane.

Pokoje (grupy)

  • Domyslnie: channels.nextcloud-talk.groupPolicy = "allowlist" (bramkowanie wzmiankami).
  • Dodaj pokoje do listy dozwolonych przez channels.nextcloud-talk.rooms:
{
  channels: {
    "nextcloud-talk": {
      rooms: {
        "room-token": { requireMention: true },
      },
    },
  },
}
  • Aby nie zezwalac na zadne pokoje, pozostaw liste dozwolonych pusta lub ustaw channels.nextcloud-talk.groupPolicy="disabled".

Mozliwosci

FunkcjaStatus
Wiadomosci bezposrednieObslugiwane
PokojeObslugiwane
WatkiNieobslugiwane
MediaTylko URL
ReakcjeObslugiwane
Natywne poleceniaNieobslugiwane

Referencja konfiguracji (Nextcloud Talk)

Pelna konfiguracja: Konfiguracja

Opcje dostawcy:

  • channels.nextcloud-talk.enabled: wlaczenie/wylaczenie startu kanalu.
  • channels.nextcloud-talk.baseUrl: URL instancji Nextcloud.
  • channels.nextcloud-talk.botSecret: wspolny sekret bota.
  • channels.nextcloud-talk.botSecretFile: sciezka do pliku z sekretem. Dowiazania symboliczne sa odrzucane.
  • channels.nextcloud-talk.apiUser: uzytkownik API do wyszukiwania pokoi (wykrywanie DM).
  • channels.nextcloud-talk.apiPassword: haslo API/aplikacji do wyszukiwania pokoi.
  • channels.nextcloud-talk.apiPasswordFile: sciezka do pliku z haslem API.
  • channels.nextcloud-talk.webhookPort: port nasluchujacy webhooka (domyslnie: 8788).
  • channels.nextcloud-talk.webhookHost: host webhooka (domyslnie: 0.0.0.0).
  • channels.nextcloud-talk.webhookPath: sciezka webhooka (domyslnie: /nextcloud-talk-webhook).
  • channels.nextcloud-talk.webhookPublicUrl: zewnetrznie osiagalny URL webhooka.
  • channels.nextcloud-talk.dmPolicy: pairing | allowlist | open | disabled.
  • channels.nextcloud-talk.allowFrom: lista dozwolonych DM (ID uzytkownikow). open wymaga "*".
  • channels.nextcloud-talk.groupPolicy: allowlist | open | disabled.
  • channels.nextcloud-talk.groupAllowFrom: lista dozwolonych grup (ID uzytkownikow).
  • channels.nextcloud-talk.rooms: ustawienia per pokoj i lista dozwolonych.
  • channels.nextcloud-talk.historyLimit: limit historii grup (0 wylacza).
  • channels.nextcloud-talk.dmHistoryLimit: limit historii DM (0 wylacza).
  • channels.nextcloud-talk.dms: nadpisania per DM (historyLimit).
  • channels.nextcloud-talk.textChunkLimit: rozmiar kawalka tekstu wychodzacego (znaki).
  • channels.nextcloud-talk.chunkMode: length (domyslnie) lub newline aby dzielic na pustych liniach (granice akapitow) przed dzieleniem wedlug dlugosci.
  • channels.nextcloud-talk.blockStreaming: wylaczenie strumieniowania blokowego dla tego kanalu.
  • channels.nextcloud-talk.blockStreamingCoalesce: dostrojenie koalescencji strumieniowania blokowego.
  • channels.nextcloud-talk.mediaMaxMb: limit mediow przychodzacych (MB).