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 via CLI (npm Registry):

openclaw plugins install @openclaw/nextcloud-talk

Lokaler Checkout (wenn du aus einem Git-Repo arbeitest):

openclaw plugins install ./extensions/nextcloud-talk

Wenn du Nextcloud Talk während der Konfiguration/Onboarding 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 Einstellungen des Zielraums.
  4. Konfiguriere OpenClaw:
    • Config: channels.nextcloud-talk.baseUrl + channels.nextcloud-talk.botSecret
    • Oder env: NEXTCLOUD_TALK_BOT_SECRET (nur für Standard-Account)
  5. Starte den 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 Nutzer muss den Bot zuerst anschreiben.
  • 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.
  • Der Webhook-Payload unterscheidet nicht zwischen DMs und Räumen; setze apiUser + apiPassword, um Raum-Typ-Lookups zu aktivieren (sonst werden DMs als Räume behandelt).

Zugriffskontrolle (DMs)

  • Standard: channels.nextcloud-talk.dmPolicy = "pairing". Unbekannte Absender erhalten einen Pairing-Code.
  • Freigabe via:
    • openclaw pairing list nextcloud-talk
    • openclaw pairing approve nextcloud-talk <CODE>
  • Öffentliche DMs: channels.nextcloud-talk.dmPolicy="open" plus channels.nextcloud-talk.allowFrom=["*"].

Räume (Gruppen)

  • Standard: channels.nextcloud-talk.groupPolicy = "allowlist" (Erwähnung erforderlich).
  • Räume zur Allowlist hinzufügen mit channels.nextcloud-talk.rooms:
{
  channels: {
    "nextcloud-talk": {
      rooms: {
        "room-token": { requireMention: true },
      },
    },
  },
}
  • Um keine Räume zuzulassen, lass die Allowlist leer oder setze channels.nextcloud-talk.groupPolicy="disabled".

Funktionen

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

Konfigurationsreferenz (Nextcloud Talk)

Vollständige Konfiguration: Konfiguration

Provider-Optionen:

  • channels.nextcloud-talk.enabled: Channel-Start aktivieren/deaktivieren.
  • channels.nextcloud-talk.baseUrl: Nextcloud-Instanz-URL.
  • channels.nextcloud-talk.botSecret: Gemeinsames Bot-Secret.
  • channels.nextcloud-talk.botSecretFile: Secret-Dateipfad.
  • channels.nextcloud-talk.apiUser: API-Nutzer für Raum-Lookups (DM-Erkennung).
  • channels.nextcloud-talk.apiPassword: API/App-Passwort für Raum-Lookups.
  • channels.nextcloud-talk.apiPasswordFile: API-Passwort-Dateipfad.
  • 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 (Nutzer-IDs). open erfordert "*".
  • channels.nextcloud-talk.groupPolicy: allowlist | open | disabled.
  • channels.nextcloud-talk.groupAllowFrom: Gruppen-Allowlist (Nutzer-IDs).
  • channels.nextcloud-talk.rooms: Raumspezifische Einstellungen und Allowlist.
  • channels.nextcloud-talk.historyLimit: Gruppen-Verlaufslimit (0 deaktiviert).
  • channels.nextcloud-talk.dmHistoryLimit: DM-Verlaufslimit (0 deaktiviert).
  • channels.nextcloud-talk.dms: DM-spezifische Überschreibungen (historyLimit).
  • channels.nextcloud-talk.textChunkLimit: Ausgehende Text-Chunk-Größe (Zeichen).
  • channels.nextcloud-talk.chunkMode: length (Standard) oder newline zum Aufteilen an Leerzeilen (Absatzgrenzen) vor Längen-Chunking.
  • channels.nextcloud-talk.blockStreaming: Block-Streaming für diesen Channel deaktivieren.
  • channels.nextcloud-talk.blockStreamingCoalesce: Block-Streaming-Coalesce-Tuning.
  • channels.nextcloud-talk.mediaMaxMb: Eingehende Medien-Obergrenze (MB).