Nextcloud Talk (plugin)

Statut : pris en charge via plugin (bot webhook). Messages prives, salons, reactions et messages markdown sont pris en charge.

Plugin requis

Nextcloud Talk est fourni comme plugin et n’est pas inclus dans l’installation de base.

Installation via CLI (registre npm) :

openclaw plugins install @openclaw/nextcloud-talk

Checkout local (execution depuis un depot git) :

openclaw plugins install ./extensions/nextcloud-talk

Si vous choisissez Nextcloud Talk pendant la configuration/l’onboarding et qu’un checkout git est detecte, OpenClaw proposera automatiquement le chemin d’installation local.

Details : Plugins

Configuration rapide (debutant)

  1. Installez le plugin Nextcloud Talk.

  2. Sur votre serveur Nextcloud, creez un bot :

    ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature reaction
  3. Activez le bot dans les parametres du salon cible.

  4. Configurez OpenClaw :

    • Config : channels.nextcloud-talk.baseUrl + channels.nextcloud-talk.botSecret
    • Ou env : NEXTCLOUD_TALK_BOT_SECRET (compte par defaut uniquement)
  5. Redemarrez la gateway (ou terminez l’onboarding).

Configuration minimale :

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

Remarques

  • Les bots ne peuvent pas initier de DMs. L’utilisateur doit envoyer un message au bot en premier.
  • L’URL du webhook doit etre accessible par la Gateway ; definissez webhookPublicUrl si vous etes derriere un proxy.
  • Les envois de medias ne sont pas pris en charge par l’API bot ; les medias sont envoyes sous forme d’URL.
  • Le payload du webhook ne distingue pas DMs vs salons ; definissez apiUser + apiPassword pour activer les recherches de type de salon (sinon les DMs sont traites comme des salons).

Controle d’acces (DMs)

  • Par defaut : channels.nextcloud-talk.dmPolicy = "pairing". Les expediteurs inconnus recoivent un code d’appairage.
  • Approbation via :
    • openclaw pairing list nextcloud-talk
    • openclaw pairing approve nextcloud-talk <CODE>
  • DMs publics : channels.nextcloud-talk.dmPolicy="open" plus channels.nextcloud-talk.allowFrom=["*"].
  • allowFrom correspond uniquement aux IDs utilisateur Nextcloud ; les noms d’affichage sont ignores.

Salons (groupes)

  • Par defaut : channels.nextcloud-talk.groupPolicy = "allowlist" (filtre par mention).
  • Autorisez les salons avec channels.nextcloud-talk.rooms :
{
  channels: {
    "nextcloud-talk": {
      rooms: {
        "room-token": { requireMention: true },
      },
    },
  },
}
  • Pour n’autoriser aucun salon, gardez la liste d’autorisation vide ou definissez channels.nextcloud-talk.groupPolicy="disabled".

Fonctionnalites

FonctionnaliteStatut
Messages privesPris en charge
SalonsPris en charge
FilsNon pris en charge
MediasURL uniquement
ReactionsPris en charge
Commandes nativesNon pris en charge

Reference de configuration (Nextcloud Talk)

Configuration complete : Configuration

Options du fournisseur :

  • channels.nextcloud-talk.enabled : activer/desactiver le demarrage du canal.
  • channels.nextcloud-talk.baseUrl : URL de l’instance Nextcloud.
  • channels.nextcloud-talk.botSecret : secret partage du bot.
  • channels.nextcloud-talk.botSecretFile : chemin de fichier regulier pour le secret. Les liens symboliques sont rejetes.
  • channels.nextcloud-talk.apiUser : utilisateur API pour les recherches de salon (detection DM).
  • channels.nextcloud-talk.apiPassword : mot de passe API/app pour les recherches de salon.
  • channels.nextcloud-talk.apiPasswordFile : chemin du fichier de mot de passe API.
  • channels.nextcloud-talk.webhookPort : port d’ecoute du webhook (par defaut : 8788).
  • channels.nextcloud-talk.webhookHost : hote du webhook (par defaut : 0.0.0.0).
  • channels.nextcloud-talk.webhookPath : chemin du webhook (par defaut : /nextcloud-talk-webhook).
  • channels.nextcloud-talk.webhookPublicUrl : URL du webhook accessible de l’exterieur.
  • channels.nextcloud-talk.dmPolicy : pairing | allowlist | open | disabled.
  • channels.nextcloud-talk.allowFrom : liste d’autorisation DM (IDs utilisateur). open necessite "*".
  • channels.nextcloud-talk.groupPolicy : allowlist | open | disabled.
  • channels.nextcloud-talk.groupAllowFrom : liste d’autorisation de groupe (IDs utilisateur).
  • channels.nextcloud-talk.rooms : parametres par salon et liste d’autorisation.
  • channels.nextcloud-talk.historyLimit : limite d’historique de groupe (0 desactive).
  • channels.nextcloud-talk.dmHistoryLimit : limite d’historique DM (0 desactive).
  • channels.nextcloud-talk.dms : surcharges par DM (historyLimit).
  • channels.nextcloud-talk.textChunkLimit : taille de decoupe du texte sortant (caracteres).
  • channels.nextcloud-talk.chunkMode : length (par defaut) ou newline pour decouper sur les lignes vides (limites de paragraphe) avant la decoupe par longueur.
  • channels.nextcloud-talk.blockStreaming : desactiver le streaming par blocs pour ce canal.
  • channels.nextcloud-talk.blockStreamingCoalesce : reglage de la coalescence du streaming par blocs.
  • channels.nextcloud-talk.mediaMaxMb : limite de media entrant (Mo).