Nextcloud Talk (Plugin)

Status: Unterstützt via Plugin (Webhook-Bot). Direktnachrichten, Räume, Reaktionen und Markdown-Nachrichten werden unterstützt.

Plugin erforderlich

Nextcloud Talk wird als Plugin ausgeliefert und ist nicht in der Kerninstallation enthalten.

Installation über CLI (npm-Registry):

openclaw plugins install @openclaw/nextcloud-talk

Lokaler Checkout (wenn aus einem Git-Repo ausgeführt):

openclaw plugins install ./extensions/nextcloud-talk

Wenn du Nextcloud Talk während der Konfiguration/des Onboardings auswählst und ein Git-Checkout erkannt wird, bietet OpenClaw automatisch den lokalen Installationspfad an.

Details: Plugins

Schnelleinrichtung (Einsteiger)

  1. Installiere das Nextcloud Talk Plugin.

  2. Erstelle auf deinem Nextcloud-Server einen Bot:

    ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature reaction
  3. Aktiviere den Bot in den Zielraum-Einstellungen.

  4. Konfiguriere OpenClaw:

    • Konfiguration: channels.nextcloud-talk.baseUrl + channels.nextcloud-talk.botSecret
    • Oder Umgebungsvariable: NEXTCLOUD_TALK_BOT_SECRET (nur Standardkonto)
  5. Starte das Gateway neu (oder schließe das Onboarding ab).

Minimale Konfiguration:

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

Hinweise

  • Bots können keine DMs initiieren. Der Benutzer muss dem Bot zuerst schreiben.
  • Die Webhook-URL muss vom Gateway erreichbar sein; setze webhookPublicUrl, wenn du hinter einem Proxy bist.
  • Medien-Uploads werden von der Bot-API nicht unterstützt; Medien werden als URLs gesendet.
  • Die Webhook-Payload unterscheidet nicht zwischen DMs und Räumen; setze apiUser + apiPassword, um Raumtyp-Abfragen zu ermöglichen (andernfalls werden DMs wie Räume behandelt).

Zugriffssteuerung (DMs)

  • Standard: channels.nextcloud-talk.dmPolicy = "pairing". Unbekannte Absender erhalten einen Pairing-Code.
  • Genehmigung über:
    • openclaw pairing list nextcloud-talk
    • openclaw pairing approve nextcloud-talk <CODE>
  • Öffentliche DMs: channels.nextcloud-talk.dmPolicy="open" plus channels.nextcloud-talk.allowFrom=["*"].
  • allowFrom matcht nur Nextcloud-Benutzer-IDs; Anzeigenamen werden ignoriert.

Räume (Gruppen)

  • Standard: channels.nextcloud-talk.groupPolicy = "allowlist" (Mention-gated).
  • Räume auf die Allowlist setzen mit channels.nextcloud-talk.rooms:
{
  channels: {
    "nextcloud-talk": {
      rooms: {
        "room-token": { requireMention: true },
      },
    },
  },
}
  • Um keine Räume zu erlauben, lasse die Allowlist leer oder setze channels.nextcloud-talk.groupPolicy="disabled".

Fähigkeiten

FeatureStatus
DirektnachrichtenUnterstützt
RäumeUnterstützt
ThreadsNicht unterstützt
MedienNur URL
ReaktionenUnterstützt
Native BefehleNicht unterstützt

Konfigurationsreferenz (Nextcloud Talk)

Vollständige Konfiguration: Configuration

Provider-Optionen:

  • channels.nextcloud-talk.enabled: Kanal-Start aktivieren/deaktivieren.
  • channels.nextcloud-talk.baseUrl: Nextcloud-Instanz-URL.
  • channels.nextcloud-talk.botSecret: gemeinsames Bot-Secret.
  • channels.nextcloud-talk.botSecretFile: regulärer Dateipfad für das Secret. Symlinks werden abgelehnt.
  • channels.nextcloud-talk.apiUser: API-Benutzer für Raumabfragen (DM-Erkennung).
  • channels.nextcloud-talk.apiPassword: API-/App-Passwort für Raumabfragen.
  • channels.nextcloud-talk.apiPasswordFile: Dateipfad für das API-Passwort.
  • channels.nextcloud-talk.webhookPort: Webhook-Listener-Port (Standard: 8788).
  • channels.nextcloud-talk.webhookHost: Webhook-Host (Standard: 0.0.0.0).
  • channels.nextcloud-talk.webhookPath: Webhook-Pfad (Standard: /nextcloud-talk-webhook).
  • channels.nextcloud-talk.webhookPublicUrl: extern erreichbare Webhook-URL.
  • channels.nextcloud-talk.dmPolicy: pairing | allowlist | open | disabled.
  • channels.nextcloud-talk.allowFrom: DM-Allowlist (Benutzer-IDs). open erfordert "*".
  • channels.nextcloud-talk.groupPolicy: allowlist | open | disabled.
  • channels.nextcloud-talk.groupAllowFrom: Gruppen-Allowlist (Benutzer-IDs).
  • channels.nextcloud-talk.rooms: Pro-Raum-Einstellungen und Allowlist.
  • channels.nextcloud-talk.historyLimit: Gruppenverlaufslimit (0 deaktiviert).
  • channels.nextcloud-talk.dmHistoryLimit: DM-Verlaufslimit (0 deaktiviert).
  • channels.nextcloud-talk.dms: Pro-DM-Überschreibungen (historyLimit).
  • channels.nextcloud-talk.textChunkLimit: Größe ausgehender Textblöcke (Zeichen).
  • channels.nextcloud-talk.chunkMode: length (Standard) oder newline, um an Leerzeilen (Absatzgrenzen) vor dem Längen-Chunking aufzuteilen.
  • channels.nextcloud-talk.blockStreaming: Block-Streaming für diesen Kanal deaktivieren.
  • channels.nextcloud-talk.blockStreamingCoalesce: Feinabstimmung des Block-Streaming-Coalescing.
  • channels.nextcloud-talk.mediaMaxMb: Obergrenze für eingehende Medien (MB).