- Added configuration for Nextcloud Claude Bot, including NixOS module, secrets management, and example setup files. - Introduced a Python-based HTTP server for handling webhook events and interacting with Nextcloud Talk. - Integrated necessary dependencies and systemd service for seamless operation.
3.1 KiB
3.1 KiB
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
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
nixos-rebuild switch
4. Bot bei Nextcloud registrieren
# 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:
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:
# 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 <bot-id> 1
6. Testen
- Öffne Nextcloud Talk
- Starte einen neuen Chat mit dem Bot (suche nach "Claude")
- Schreibe eine Nachricht
Health Check
curl http://127.0.0.1:8085/health
Logs prüfen
journalctl -u nextcloud-claude-bot -f
Troubleshooting
Bot antwortet nicht
-
Prüfe ob der Service läuft:
systemctl status nextcloud-claude-bot -
Prüfe die Logs:
journalctl -u nextcloud-claude-bot -n 50 -
Teste den Webhook manuell:
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:
# 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:
# 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
/helpoder/hilfe– Hilfe anzeigen/clearoder/reset– Konversation zurücksetzen
Sicherheitshinweise
- Der Bot läuft nur auf localhost und ist nicht direkt erreichbar
- Nur in
allowedUsersgelistete Nutzer können den Bot verwenden - Webhook-Signaturen werden verifiziert
- DynamicUser isoliert den Service