Developer and self-hosted
Nextcloud Talk
Nextcloud Talk is een downloadbare kanaalplugin (@openclaw/nextcloud-talk) die OpenClaw via een Talk-webhookbot verbindt met een zelfgehoste Nextcloud-instantie. Directe berichten, ruimtes, reacties en markdown-berichten worden ondersteund; media worden als URL's verzonden.
Installeren
openclaw plugins install @openclaw/nextcloud-talkGebruik de kale pakketspecificatie om de huidige officiële releasetag te volgen. Zet alleen een exacte versie vast wanneer je een reproduceerbare installatie nodig hebt.
Vanuit een lokale checkout (ontwikkelworkflows):
openclaw plugins install ./path/to/local/nextcloud-talk-pluginStart de Gateway na de installatie opnieuw. Details: Plugins
Snelle configuratie (beginner)
-
Installeer de plugin (hierboven).
-
Maak op je Nextcloud-server een bot:
bash ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature webhook --feature response --feature reactionBehoud
--feature response: zonder dit mislukken uitgaande antwoorden met 401. Herstel een bestaande bot met./occ talk:bot:state --feature webhook --feature response --feature reaction <botId> 1. -
Schakel de bot in via de instellingen van de doelruimte.
-
Configureer OpenClaw:
- Configuratie:
channels.nextcloud-talk.baseUrl+channels.nextcloud-talk.botSecret - Of via de omgeving:
NEXTCLOUD_TALK_BOT_SECRET(alleen standaardaccount)
CLI-configuratie (
--url/--tokenzijn aliassen voor de expliciete velden;nc-talkenncwerken als kanaalaliassen):bash openclaw channels add --channel nextcloud-talk \ --url https://cloud.example.com \ --token "<shared-secret>"Gelijkwaardige expliciete velden:
bash openclaw channels add --channel nextcloud-talk \ --base-url https://cloud.example.com \ --secret "<shared-secret>"Bestandsgebaseerd geheim:
bash openclaw channels add --channel nextcloud-talk \ --base-url https://cloud.example.com \ --secret-file /path/to/nextcloud-talk-secret - Configuratie:
-
Start de Gateway opnieuw (of voltooi de configuratie).
Minimale configuratie:
{ channels: { "nextcloud-talk": { enabled: true, baseUrl: "https://cloud.example.com", botSecret: "shared-secret", dmPolicy: "pairing", }, },}Opmerkingen
- Bots kunnen geen DM's initiëren. De gebruiker moet eerst een bericht naar de bot sturen.
- De webhook-URL moet vanaf de Nextcloud-server bereikbaar zijn; stel
webhookPublicUrlin wanneer de Gateway zich achter een proxy bevindt. Webhookverzoeken worden met het botgeheim via HMAC-SHA256 ondertekend; ongeldige handtekeningen worden geweigerd en beperkt in aanvraagsnelheid. - Media-uploads worden niet ondersteund door de bot-API; uitgaande media worden toegevoegd als een regel met
Attachment: <url>. - De webhookpayload maakt geen onderscheid tussen DM's en ruimtes; stel
apiUser+apiPasswordin om opzoekacties voor het ruimtetype in te schakelen (ongeveer 5 minuten gecachet). Zonder deze instellingen wordt elk gesprek als een ruimte behandeld. - Uitgaande verzoeken lopen via de SSRF-beveiliging. Meld je met
channels.nextcloud-talk.network.dangerouslyAllowPrivateNetwork: trueaan voor een Nextcloud-host op een vertrouwd privé/intern netwerk. - Als
apiUser/apiPasswordenwebhookPublicUrlzijn ingesteld, controleertopenclaw channels statusde bot en waarschuwt het wanneer de functieresponseontbreekt.
Toegangsbeheer (DM's)
- Standaard:
channels.nextcloud-talk.dmPolicy = "pairing". Onbekende afzenders krijgen een koppelingscode. - Goedkeuren via:
openclaw pairing list nextcloud-talkopenclaw pairing approve nextcloud-talk <CODE>
- Openbare DM's:
channels.nextcloud-talk.dmPolicy="open"pluschannels.nextcloud-talk.allowFrom=["*"]. allowFromkomt alleen overeen met Nextcloud-gebruikers-ID's (in kleine letters); weergavenamen worden genegeerd.
Ruimtes (groepen)
- Standaard:
channels.nextcloud-talk.groupPolicy = "allowlist"(vermelding vereist). - Sta ruimtes toe met
channels.nextcloud-talk.rooms, geïndexeerd op ruimtetoken;"*"stelt een standaard met jokerteken in:
{ channels: { "nextcloud-talk": { rooms: { "room-token": { requireMention: true }, }, }, },}- Sleutels per ruimte:
requireMention(standaard true),enabled(false schakelt de ruimte uit),allowFrom(lijst met toegestane afzenders per ruimte),tools(overschrijvingen om tools toe te staan/te weigeren),skills(beperk geladen Skills),systemPrompt. - Houd de lijst met toegestane ruimtes leeg of stel
channels.nextcloud-talk.groupPolicy="disabled"in om geen ruimtes toe te staan.
Mogelijkheden
| Functie | Status |
|---|---|
| Directe berichten | Ondersteund |
| Ruimtes | Ondersteund |
| Threads | Niet ondersteund |
| Media | Alleen URL's |
| Reacties | Ondersteund |
| Systeemeigen opdrachten | Niet ondersteund |
Configuratiereferentie (Nextcloud Talk)
Volledige configuratie: Configuratie
Provideropties:
channels.nextcloud-talk.enabled: opstarten van het kanaal in-/uitschakelen.channels.nextcloud-talk.baseUrl: URL van de Nextcloud-instantie.channels.nextcloud-talk.botSecret: gedeeld botgeheim (tekenreeks of geheime verwijzing).channels.nextcloud-talk.botSecretFile: pad naar een geheim in een regulier bestand. Symbolische koppelingen worden geweigerd.channels.nextcloud-talk.apiUser: API-gebruiker voor het opzoeken van ruimtes (DM-detectie) en de statuscontrole.channels.nextcloud-talk.apiPassword: API-/app-wachtwoord voor het opzoeken van ruimtes.channels.nextcloud-talk.apiPasswordFile: bestandspad van het API-wachtwoord.channels.nextcloud-talk.webhookPort: poort van de webhooklistener (standaard: 8788).channels.nextcloud-talk.webhookHost: webhookhost (standaard: 0.0.0.0).channels.nextcloud-talk.webhookPath: webhookpad (standaard: /nextcloud-talk-webhook).channels.nextcloud-talk.webhookPublicUrl: extern bereikbare webhook-URL.channels.nextcloud-talk.dmPolicy:pairing | allowlist | open | disabled(standaard: koppelen).openvereistallowFrom=["*"].channels.nextcloud-talk.allowFrom: lijst met toegestane DM-gebruikers (gebruikers-ID's).channels.nextcloud-talk.groupPolicy:allowlist | open | disabled(standaard: lijst met toegestane items).channels.nextcloud-talk.groupAllowFrom: lijst met toegestane afzenders in ruimtes (gebruikers-ID's); valt terug opallowFromwanneer niet ingesteld.channels.nextcloud-talk.rooms: instellingen per ruimte en lijst met toegestane ruimtes (zie hierboven).- Naar statische toegangsgroepen voor afzenders kan vanuit
allowFromengroupAllowFromworden verwezen metaccessGroup:<name>. channels.nextcloud-talk.historyLimit: limiet voor groepsgeschiedenis (0 schakelt dit uit).channels.nextcloud-talk.dmHistoryLimit: limiet voor DM-geschiedenis (0 schakelt dit uit).channels.nextcloud-talk.dms: overschrijvingen per DM, geïndexeerd op gebruikers-ID (historyLimit).channels.nextcloud-talk.textChunkLimit: segmentgrootte van uitgaande tekst in tekens (standaard: 4000).channels.nextcloud-talk.streaming.chunkMode:length(standaard) ofnewlineom vóór segmentering op lengte te splitsen op lege regels (alineagrenzen).channels.nextcloud-talk.streaming.block.enabled: blokstreaming voor dit kanaal in- of uitschakelen.channels.nextcloud-talk.streaming.block.coalesce: afstemming voor het samenvoegen van blokstreaming.channels.nextcloud-talk.responsePrefix: voorvoegsel voor uitgaande antwoorden.channels.nextcloud-talk.markdown.tables: weergavemodus voor markdown-tabellen (off | bullets | code | block).channels.nextcloud-talk.mediaMaxMb: limiet voor inkomende media (MB).channels.nextcloud-talk.network.dangerouslyAllowPrivateNetwork: privé/interne Nextcloud-hosts door de SSRF-beveiliging toelaten.channels.nextcloud-talk.accounts.<id>: overschrijvingen per account (dezelfde sleutels);defaultAccountkiest de standaard. OmgevingsvariabelenNEXTCLOUD_TALK_BOT_SECRET/NEXTCLOUD_TALK_API_PASSWORDzijn alleen van toepassing op het standaardaccount.
Gerelateerd
- Overzicht van kanalen — alle ondersteunde kanalen
- Koppelen — DM-authenticatie en koppelingsproces
- Groepen — gedrag van groepschats en vereiste vermeldingen
- Kanaalroutering — sessieroutering voor berichten
- Beveiliging — toegangsmodel en versterking