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.
Installatie
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 opnieuw na de installatie. Details: Plugins
Snelle configuratie (beginners)
-
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 deze optie 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 omgevingsvariabele:
NEXTCLOUD_TALK_BOT_SECRET(alleen voor het standaardaccount)
CLI-configuratie (
--url/--tokenzijn aliassen voor de expliciete velden;nc-talkenncwerken als kanainaliassen):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>"Geheim uit een bestand:
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 rond de configuratie af).
Minimale configuratie:
{ channels: { "nextcloud-talk": { enabled: true, baseUrl: "https://cloud.example.com", botSecret: "shared-secret", dmPolicy: "pairing", }, },}Opmerkingen
- Bots kunnen geen directe berichten initiëren. De gebruiker moet eerst een bericht naar de bot sturen.
- De webhook-URL moet bereikbaar zijn vanaf de Nextcloud-server; stel
webhookPublicUrlin wanneer de Gateway zich achter een proxy bevindt. Webhookverzoeken worden met HMAC-SHA256 en het botgeheim ondertekend; ongeldige handtekeningen worden geweigerd en onderworpen aan snelheidsbeperking. - Media-uploads worden niet ondersteund door de bot-API; uitgaande media worden toegevoegd als een regel
Attachment: <url>. - De webhookpayload maakt geen onderscheid tussen directe berichten en ruimtes; stel
apiUser+apiPasswordin om opzoekacties voor ruimtetypen in te schakelen (ongeveer 5 minuten in de cache). Zonder deze instellingen wordt elk gesprek als een ruimte behandeld. - Uitgaande verzoeken lopen via de SSRF-beveiliging. Voor een Nextcloud-host op een vertrouwd privé- of intern netwerk kun je dit toestaan met
channels.nextcloud-talk.network.dangerouslyAllowPrivateNetwork: true. - Wanneer
apiUser/apiPasswordenwebhookPublicUrlzijn ingesteld, controleertopenclaw channels statusde bot en waarschuwt het wanneer de functieresponseontbreekt.
Toegangsbeheer (directe berichten)
- Standaard:
channels.nextcloud-talk.dmPolicy = "pairing". Onbekende afzenders ontvangen een koppelcode. - Goedkeuren via:
openclaw pairing list nextcloud-talkopenclaw pairing approve nextcloud-talk <CODE>
- Openbare directe berichten:
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"(alleen bij vermelding). - Sta ruimtes toe via
channels.nextcloud-talk.rooms, met het ruimtetoken als sleutel;"*"stelt een standaardjokerteken in:
{ channels: { "nextcloud-talk": { rooms: { "room-token": { requireMention: true }, }, }, },}- Sleutels per ruimte:
requireMention(standaard true),enabled(false schakelt de ruimte uit),allowFrom(toegestane afzenders per ruimte),tools(overschrijvingen voor het toestaan/weigeren van hulpmiddelen),skills(beperk geladen Skills),systemPrompt. - Om geen ruimtes toe te staan, laat je de lijst met toegestane ruimtes leeg of stel je
channels.nextcloud-talk.groupPolicy="disabled"in.
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: het opstarten van het kanaal in- of uitschakelen.channels.nextcloud-talk.baseUrl: URL van de Nextcloud-instantie.channels.nextcloud-talk.botSecret: gedeeld botgeheim (tekenreeks of verwijzing naar een geheim).channels.nextcloud-talk.botSecretFile: pad naar een gewoon bestand met het geheim. Symbolische koppelingen worden geweigerd.channels.nextcloud-talk.apiUser: API-gebruiker voor het opzoeken van ruimtes (detectie van directe berichten) en de statuscontrole.channels.nextcloud-talk.apiPassword: API-/appwachtwoord voor het opzoeken van ruimtes.channels.nextcloud-talk.apiPasswordFile: bestandspad voor 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: pairing).openvereistallowFrom=["*"].channels.nextcloud-talk.allowFrom: lijst met toegestane afzenders voor directe berichten (gebruikers-ID's).channels.nextcloud-talk.groupPolicy:allowlist | open | disabled(standaard: allowlist).channels.nextcloud-talk.groupAllowFrom: lijst met toegestane afzenders in ruimtes (gebruikers-ID's); valt terug opallowFromwanneer dit niet is ingesteld.channels.nextcloud-talk.rooms: instellingen en lijst met toegestane afzenders per ruimte (zie hierboven).- Vanuit
allowFromengroupAllowFromkan metaccessGroup:<name>naar statische afzendertoegangsgroepen worden verwezen. channels.nextcloud-talk.historyLimit: limiet voor groepsgeschiedenis (0 schakelt dit uit).channels.nextcloud-talk.dmHistoryLimit: limiet voor de geschiedenis van directe berichten (0 schakelt dit uit).channels.nextcloud-talk.dms: overschrijvingen per direct bericht, met gebruikers-ID als sleutel (historyLimit).channels.nextcloud-talk.textChunkLimit: grootte van uitgaande tekstsegmenten in tekens (standaard: 4000).channels.nextcloud-talk.chunkMode:length(standaard) ofnewlineom eerst op lege regels (alineagrenzen) te splitsen en daarna op lengte.channels.nextcloud-talk.blockStreaming: blokstreaming voor dit kanaal uitschakelen.channels.nextcloud-talk.blockStreamingCoalesce: 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);defaultAccountselecteert het standaardaccount. De omgevingsvariabelenNEXTCLOUD_TALK_BOT_SECRET/NEXTCLOUD_TALK_API_PASSWORDzijn alleen van toepassing op het standaardaccount.
Gerelateerd
- Overzicht van kanalen — alle ondersteunde kanalen
- Koppelen — authenticatie van directe berichten en koppelproces
- Groepen — gedrag van groepschats en vereiste vermeldingen
- Kanaalroutering — sessieroutering voor berichten
- Beveiliging — toegangsmodel en beveiligingsversterking