194 lines
8.2 KiB
Markdown
194 lines
8.2 KiB
Markdown
# TOOLS.md - Local Notes
|
||
|
||
Skills define _how_ tools work. This file is for _your_ specifics — the stuff that's unique to your setup.
|
||
|
||
## What Goes Here
|
||
|
||
Things like:
|
||
|
||
- Camera names and locations
|
||
- SSH hosts and aliases
|
||
- Preferred voices for TTS
|
||
- Speaker/room names
|
||
- Device nicknames
|
||
- Anything environment-specific
|
||
|
||
## Examples
|
||
|
||
```markdown
|
||
### Cameras
|
||
|
||
- living-room → Main area, 180° wide angle
|
||
- front-door → Entrance, motion-triggered
|
||
|
||
### SSH
|
||
|
||
- home-server → 192.168.1.100, user: admin
|
||
|
||
### TTS
|
||
|
||
- Preferred voice: "Nova" (warm, slightly British)
|
||
- Default speaker: Kitchen HomePod
|
||
```
|
||
|
||
## Why Separate?
|
||
|
||
Skills are shared. Your setup is yours. Keeping them apart means you can update skills without losing your notes, and share skills without leaking your infrastructure.
|
||
|
||
---
|
||
|
||
Add whatever helps you do your job. This is your cheat sheet.
|
||
|
||
### Paperless-ngx
|
||
|
||
- URL: https://docs.home.kies-media.de/
|
||
- User: greggy
|
||
- Credentials in `.bashrc`/`.profile` (`$PAPERLESS_USER`, `$PAPERLESS_PASS`)
|
||
- Dokumenttypen: Rechnungen, Versicherungspolicen, Verträge, wichtige Entscheidungen
|
||
- Workflow: Bei Email-Check relevante Dokumente automatisch archivieren
|
||
|
||
### Google Workspace (gog CLI)
|
||
|
||
- Version: v0.12.0
|
||
- Account: `mkiesewetter9@googlemail.com`
|
||
- OAuth authentifiziert für: contacts, calendar
|
||
- Keyring-Passwort: `$GOG_KEYRING_PASSWORD` in `.bashrc`/`.profile`
|
||
- Befehle:
|
||
- Contacts: `gog contacts list --max 20`
|
||
- Calendar: `gog calendar events primary --account mkiesewetter9@googlemail.com --from <iso> --to <iso>`
|
||
- Kalender-Farben: `gog calendar colors`
|
||
|
||
### Email (AgentMail)
|
||
|
||
- Inbox: `max-kies-media-ai-assistent@agentmail.to`
|
||
- Name: Max Kies-Media AI Assistent
|
||
- API Key: `$AGENTMAIL_API_KEY` in `.bashrc`
|
||
- Signatur: "Max von Kies-Media – KI-Assistent von Martin"
|
||
- Footer in jeder Email:
|
||
```
|
||
--
|
||
Martin Kiesewetter
|
||
Tel.: 0176-45853923
|
||
Email: mki@kies-media.de
|
||
```
|
||
- Reply-To: `mki@kies-media.de` verwenden wenn möglich
|
||
|
||
### Aktive OpenClaw-Modelle
|
||
- **Primary:** `z-ai/glm-5.1` (Alias: GLM-5.1)
|
||
- **Fallback:** `openrouter/google/gemma-4-31b` (Alias: Gemma-4-31B) – auch für Coding & Git
|
||
- **Free:** `z-ai/glm-4.7-flash` (GLM-4.7-flash-free), `openrouter/deepseek/deepseek-v4-flash:free` (DeepSeek-V4-Flash)
|
||
|
||
### OpenRouter
|
||
- API Key: `$OPENROUTER_API_KEY` in `.bashrc`
|
||
- URL: https://openrouter.ai/api/v1
|
||
- ⚠️ **SICHERHEITSREGEL:** Niemals API-Keys, Passwörter, Tokens oder andere geheime Informationen an kostenlose OpenRouter-Modelle (free-Tier) weiterleiten. Diese Modelle können Daten loggen oder für Training nutzen.
|
||
- Free-Modelle (z.B. `deepseek/deepseek-v4-flash:free`) nur für unkritische Anfragen nutzen
|
||
- Bei Anfragen die Credentials/Secrets enthalten → bezahltes Modell oder lokales Modell verwenden
|
||
- ⚠️ **PATCH NACH JEDEM OPENCLAW-UPDATE:** Datei `/usr/lib/node_modules/openclaw/dist/openai-transport-stream-BkI6rJ3U.js` patchen:
|
||
- Zeile mit `function flattenStringOnlyCompletionContent(content) {` suchen
|
||
- Direkt danach, vor `if (!Array.isArray(content)) return content;`, einfügen: `if (content === null || content === undefined) return "";`
|
||
- Grund: DeepSeek V4 Flash (free) akzeptiert kein `null` in message content – OpenClaw sendet das aber bei Tool-Result-Nachrichten
|
||
- Nach dem Patch: Gateway neu starten
|
||
|
||
### Git
|
||
|
||
- Remote: `https://git.home.kies-media.de/greggy/openclaw.git`
|
||
- Branch: `master`
|
||
- User: `greggy`
|
||
- Workspace Repo: `/root/.openclaw/workspace`
|
||
- Credentials in `.bashrc`/`.profile`
|
||
|
||
|
||
|
||
### TrueNAS Server (192.168.8.112)
|
||
|
||
**Hardware:**
|
||
- Mainboard: Supermicro H12SSL-i (Milan, Dual-Sockel-fähig)
|
||
- CPU: AMD EPYC 7C13 (64 Cores)
|
||
- RAM: 512 GB DDR4 2666 MHz
|
||
- GPU: NVIDIA RTX 3060 Ti Lite Hash Rate (8 GB VRAM)
|
||
- HBA: LSI SAS 9300-16i (IT Mode, 12 Gbit/s, 16 Ports, 2× SAS3008 via PLX PEX 8724 Switch)
|
||
- Netzwerk: Mellanox ConnectX-2 MNPA19-XTR (10 GbE SFP+, PCIe x8)
|
||
- Netzwerk: 2× Broadcom BCM5720 Gigabit Ethernet (onboard)
|
||
- IPMI/BMC: ASPEED Graphics (Remote Management)
|
||
- NVMe: WD Black SN850X 1TB (boot-pool)
|
||
|
||
**Storage (Pool: Main):**
|
||
- 1× WD Black SN850X 1TB NVMe (boot-pool)
|
||
- 2× TeamGroup T253 512GB SSD (sdd, sdf)
|
||
- 2× Seagate Exos X18 16TB HDD 7200rpm (sdg, sdh) – ST16000NM000J
|
||
- 2× Toshiba MG08 16TB HDD 7200rpm (sdi, sdj) – MG08ACA16TE
|
||
- 2× HGST Ultrastar 8TB HDD 7200rpm (sdk, sdc) – HUH721008ALE600
|
||
- 2× Toshiba 8TB HDD 7200rpm (sdb, sde) – HDWG480
|
||
- 1× Seagate Exos X18 18TB HDD 7200rpm (sda, unassigned) – ST18000NM000J
|
||
|
||
**ZFS-Layout (Main-Pool):**
|
||
- 2× RAIDZ1 VDEVs (je 5 HDDs, 1 Parität pro VDEV)
|
||
- 1× Mirror SLOG (2× 512GB SSD als ZIL)
|
||
- Effektiv: ~102 TB nutzbar von ~128 TB roh
|
||
- Belegt: 65.3 TB (64%), Frei: 36.6 TB (Stand: Mai 2026)
|
||
- **Zusätzlich:** 18TB Seagate Exos X18 (sda) nicht zugewiesen, S.M.A.R.T. ✅ gesund
|
||
- ⚠️ RAIDZ1 bei 16TB-Platten: nur single parity
|
||
|
||
### TrueNAS SMB (192.168.8.112)
|
||
- Über WireGuard erreichbar: `192.168.8.112`
|
||
- User: `openclaw` (eingeschränkter User, nicht admin)
|
||
- Credentials in `.bashrc`: `$TRUENAS_SMB_USER`, `$TRUENAS_SMB_PASS`, `$TRUENAS_SMB_HOST`
|
||
- SMB-Credentials-Datei: `/root/.smb-credentials` (für fstab)
|
||
- SMB-Befehl: `smbclient //$TRUENAS_SMB_HOST/<share> -U $TRUENAS_SMB_USER%$TRUENAS_SMB_PASS`
|
||
- Shares auflisten: `smbclient -L $TRUENAS_SMB_HOST -U $TRUENAS_SMB_USER%$TRUENAS_SMB_PASS`
|
||
|
||
#### Verfügbare Shares & Berechtigungen (Stand 05/2026)
|
||
|
||
**SMB-Share-Level ACLs (alle aktiv außer ix-applications):**
|
||
|
||
| Share | Pfad | openclaw Zugriff | greggy Zugriff | Bemerkung |
|
||
|---|---|---|---|---|
|
||
| openclaw | /mnt/Main/openclaw | ✅ FULL | ✅ (via admin) | Workspace-Backup, gemounted `/mnt/openclaw-smb` |
|
||
| Austausch | /mnt/Main/Austausch | ✅ FULL (everyone@) | ✅ FULL (everyone@) | Allgemeiner Austausch-Ordner |
|
||
| martin | /mnt/Main/martin | 🔍 READ | ✅ FULL | greggy = Owner |
|
||
| Filme | /mnt/Main/Filme | ❌ | ✅ (via admin) | homelab-family: READ, rene: READ |
|
||
| isos | /mnt/Main/isos | ❌ | ✅ FULL | Nur greggy |
|
||
| Spiele | /mnt/Main/Spiele | ❌ | ✅ (via admin) | homelab-family: READ, rene: READ |
|
||
| Programme | /mnt/Main/Programme | ✅ FULL (everyone@) | ✅ FULL (everyone@) | Alle haben Vollzugriff |
|
||
| Audiobooks | /mnt/Main/Musik/Audiobooks | ❌ | ✅ (via homelab-family) | Unterverzeichnis von Musik |
|
||
| Google | /mnt/Main/Google | ❌ | ✅ (via admin) | Nur truenas_admin |
|
||
| Musik | /mnt/Main/Musik | 🔍 READ (everyone@) | ✅ FULL | Alle lesen, greggy schreibt |
|
||
| Familiensachen | /mnt/Main/Familiensachen | ❌ | ✅ (via admin) | admin + homelab-family: READ |
|
||
| Lara | /mnt/Main/Lara | ❌ | ✅ FULL | lara + greggy |
|
||
| Luisa | /mnt/Main/Luisa | ❌ | ✅ FULL | luisa + greggy |
|
||
| ix-applications | /mnt/Main/ix-applications | ❌ | ❌ | Deaktiviert |
|
||
|
||
**Wichtige Users:**
|
||
- `greggy` (uid 3000) – Gruppen: nogroup, truenas_admin, homelab-family
|
||
- `openclaw` (uid 3004) – Gruppe: AI-Martin
|
||
- `lara` (uid 3001), `luisa` (uid 3002), `rene` (uid 3003)
|
||
|
||
**⚠️ Bekanntes Problem (05/2026):** Einige Ordner hatten verwaiste Gruppe 3000 (gelöscht) – Docker-Homelab wurde auf `homelab-family` korrigiert. Bei weiteren Zugriffsproblemen Gruppenzugehörigkeit prüfen.
|
||
|
||
### OpenClaw Arbeitsbereich (TrueNAS)
|
||
- SMB-Share: `//192.168.8.112/openclaw` → gemountet auf `/mnt/openclaw-smb`
|
||
- Workspace-Spiegel: `/mnt/openclaw-smb/workspace/`
|
||
- Auto-Mount via `/etc/fstab` (credentials: `/root/.smb-credentials`)
|
||
- Sync-Scripts:
|
||
- `scripts/sync-to-truenas.sh` – synct Workspace zum TrueNAS
|
||
- `scripts/commit-and-sync.sh` – git commit + push + sync zu TrueNAS
|
||
- Workflow: Nach Datei-Änderungen → `bash scripts/commit-and-sync.sh`
|
||
|
||
### Landingpage Testumgebung
|
||
- **Server:** Apache auf dem OpenClaw-Server (lokal)
|
||
- **DocumentRoot:** `/var/www/test/html`
|
||
- **URL (localhost):** `http://localhost:6427/`
|
||
- **URL (extern):** `http://178.104.150.0:6427/`
|
||
- **Port:** 80 + 6427
|
||
- **Deploy:** Branch klonen → rsync nach `/var/www/test/html/`
|
||
- **Repo:** `greggy/landingpage-haus-schleusingen`
|
||
- ⚠️ **Nach jedem Deploy:** URL als klickbarer Link im Chat posten: http://178.104.150.0:6427/
|
||
- **⚠️ Wichtig:** Feature-Branches werden VOR dem Merge auf die Testumgebung deployed. Nach PR-Merge ist kein erneuter Deploy nötig – main ist dann automatisch auf dem gleichen Stand.
|
||
|
||
### Exec-Timeouts (Konventionen)
|
||
|
||
- Kurze CLI-Abfragen: **150 Sekunden**
|
||
- Python-Skripte: **300 Sekunden**
|
||
- Browser-Vorgänge: **300 Sekunden**
|