# Nextcloud Claude Bot Setup ## Voraussetzungen - NixOS Server mit Nextcloud (Talk App aktiviert) - Claude Code CLI installiert und authentifiziert - Nextcloud Talk Version 17+ (Nextcloud 26+) ## 1. Bot Secret generieren ```bash openssl rand -hex 32 > /var/secrets/nextcloud-claude-bot chmod 600 /var/secrets/nextcloud-claude-bot ``` ## 2. NixOS Konfiguration Kopiere die Dateien nach `/etc/nixos/nextcloud-claude-bot/` oder in dein Flake: ``` /etc/nixos/ ├── configuration.nix └── nextcloud-claude-bot/ ├── module.nix └── bot.py ``` Füge das Modul zu deiner `configuration.nix` hinzu (siehe `example-config.nix`). ## 3. System rebuilden ```bash nixos-rebuild switch ``` ## 4. Bot bei Nextcloud registrieren ```bash # Als root oder mit sudo cd /var/www/nextcloud # oder wo dein Nextcloud liegt # Bot secret auslesen BOT_SECRET=$(cat /var/secrets/nextcloud-claude-bot) # Bot installieren sudo -u nextcloud php occ talk:bot:install \ "Claude" \ "Claude AI Assistant" \ "http://127.0.0.1:8085/webhook" \ "$BOT_SECRET" ``` Falls der Bot extern erreichbar sein muss: ```bash sudo -u nextcloud php occ talk:bot:install \ "Claude" \ "Claude AI Assistant" \ "https://cloud.example.com/_claude-bot/webhook" \ "$BOT_SECRET" ``` ## 5. Bot aktivieren Nach der Installation musst du den Bot für Konversationen aktivieren: ```bash # Liste alle Bots sudo -u nextcloud php occ talk:bot:list # Bot für alle User verfügbar machen (optional) sudo -u nextcloud php occ talk:bot:state 1 ``` ## 6. Testen 1. Öffne Nextcloud Talk 2. Starte einen neuen Chat mit dem Bot (suche nach "Claude") 3. Schreibe eine Nachricht ### Health Check ```bash curl http://127.0.0.1:8085/health ``` ### Logs prüfen ```bash journalctl -u nextcloud-claude-bot -f ``` ## Troubleshooting ### Bot antwortet nicht 1. Prüfe ob der Service läuft: ```bash systemctl status nextcloud-claude-bot ``` 2. Prüfe die Logs: ```bash journalctl -u nextcloud-claude-bot -n 50 ``` 3. Teste den Webhook manuell: ```bash curl -X POST http://127.0.0.1:8085/webhook \ -H "Content-Type: application/json" \ -d '{"actor":{"type":"users","id":"harald"},"message":{"message":"test","id":1},"conversation":{"token":"abc123","type":1}}' ``` ### Claude CLI Fehler Stelle sicher, dass Claude CLI als der Service-User funktioniert: ```bash # Teste als der User sudo -u nextcloud-claude-bot claude --print "Hello" ``` Die Claude CLI Config liegt in `/var/lib/nextcloud-claude-bot/.config/claude/`. ### Signature Fehler Prüfe ob das Bot Secret in Nextcloud und im Service übereinstimmt: ```bash # Secret im Service cat /var/secrets/nextcloud-claude-bot # Secret in Nextcloud (verschlüsselt gespeichert) sudo -u nextcloud php occ talk:bot:list ``` ## Befehle im Chat - `/help` oder `/hilfe` – Hilfe anzeigen - `/clear` oder `/reset` – Konversation zurücksetzen ## Sicherheitshinweise - Der Bot läuft nur auf localhost und ist nicht direkt erreichbar - Nur in `allowedUsers` gelistete Nutzer können den Bot verwenden - Webhook-Signaturen werden verifiziert - DynamicUser isoliert den Service