Sjednoceni MCP cest na U:\janssen + trilium hostname fallback
.mcp.json: vsechny repo MCP servery na U:\janssen (na Z230 vyresi junction U:\janssen -> U:\PythonProject\Janssen), owa/vbcz-email zustavaji Z230-only. TrilliumMCP: COMPUTERNAME fallback na socket.gethostname(). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,23 +2,23 @@
|
|||||||
"mcpServers": {
|
"mcpServers": {
|
||||||
"janssen-mongo": {
|
"janssen-mongo": {
|
||||||
"command": "python",
|
"command": "python",
|
||||||
"args": ["U:\\PythonProject\\Janssen\\mcp_mongo.py"],
|
"args": ["U:\\janssen\\mcp_mongo.py"],
|
||||||
"cwd": "U:\\PythonProject\\Janssen"
|
"cwd": "U:\\janssen"
|
||||||
},
|
},
|
||||||
"janssen-postgres": {
|
"janssen-postgres": {
|
||||||
"command": "python",
|
"command": "python",
|
||||||
"args": ["U:\\PythonProject\\Janssen\\mcp_postgres.py"],
|
"args": ["U:\\janssen\\mcp_postgres.py"],
|
||||||
"cwd": "U:\\PythonProject\\Janssen"
|
"cwd": "U:\\janssen"
|
||||||
},
|
},
|
||||||
"jnjemails": {
|
"jnjemails": {
|
||||||
"command": "python",
|
"command": "python",
|
||||||
"args": ["U:\\PythonProject\\Janssen\\EmailsImport\\mcp_jnjemails.py"],
|
"args": ["U:\\janssen\\EmailsImport\\mcp_jnjemails.py"],
|
||||||
"cwd": "U:\\PythonProject\\Janssen\\EmailsImport"
|
"cwd": "U:\\janssen\\EmailsImport"
|
||||||
},
|
},
|
||||||
"soubory": {
|
"soubory": {
|
||||||
"command": "U:\\janssen\\.venv\\Scripts\\python.exe",
|
"command": "U:\\janssen\\.venv\\Scripts\\python.exe",
|
||||||
"args": ["U:\\janssen\\soubory\\mcp_soubory.py"],
|
"args": ["U:\\janssen\\Soubory\\mcp_soubory.py"],
|
||||||
"cwd": "U:\\janssen\\soubory"
|
"cwd": "U:\\janssen\\Soubory"
|
||||||
},
|
},
|
||||||
"emaily": {
|
"emaily": {
|
||||||
"command": "U:\\janssen\\.venv\\Scripts\\python.exe",
|
"command": "U:\\janssen\\.venv\\Scripts\\python.exe",
|
||||||
@@ -37,8 +37,8 @@
|
|||||||
},
|
},
|
||||||
"trilium": {
|
"trilium": {
|
||||||
"command": "python",
|
"command": "python",
|
||||||
"args": ["U:\\PythonProject\\Janssen\\TrilliumMCP\\mcp_trilium_v1.1.py"],
|
"args": ["U:\\janssen\\TrilliumMCP\\mcp_trilium_v1.1.py"],
|
||||||
"cwd": "U:\\PythonProject\\Janssen\\TrilliumMCP"
|
"cwd": "U:\\janssen\\TrilliumMCP"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ from __future__ import annotations
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import json
|
import json
|
||||||
|
import socket
|
||||||
import html
|
import html
|
||||||
import hashlib
|
import hashlib
|
||||||
import datetime
|
import datetime
|
||||||
@@ -236,7 +237,8 @@ def create_summary(title: str, content: str, creator: Optional[str] = None) -> d
|
|||||||
creator: kdo summary vytváří; default "ClaudeCode z počítače <COMPUTERNAME>".
|
creator: kdo summary vytváří; default "ClaudeCode z počítače <COMPUTERNAME>".
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
who = creator or f"ClaudeCode z počítače {os.environ.get('COMPUTERNAME', 'neznámý')}"
|
pc = os.environ.get('COMPUTERNAME') or socket.gethostname() or 'neznámý'
|
||||||
|
who = creator or f"ClaudeCode z počítače {pc}"
|
||||||
stamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
|
stamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M")
|
||||||
header = f"{stamp} — {who}"
|
header = f"{stamp} — {who}"
|
||||||
html_content = _text_to_html(header + "\n\n" + content, is_html=False)
|
html_content = _text_to_html(header + "\n\n" + content, is_html=False)
|
||||||
|
|||||||
@@ -16,3 +16,4 @@
|
|||||||
- [Python-runner pipeline](project_python_runner.md) — Docker kontejner na Unraidu, email pipeline 2×/den, auto-install deps, report z reports@buzalka.cz
|
- [Python-runner pipeline](project_python_runner.md) — Docker kontejner na Unraidu, email pipeline 2×/den, auto-install deps, report z reports@buzalka.cz
|
||||||
- [Claude Code learning path](project_claude_learning.md) — Level 2 Intermediate, mezery: Skills/Subagenty/Hooks/Print mode, tutoriál v `claude-howto/`
|
- [Claude Code learning path](project_claude_learning.md) — Level 2 Intermediate, mezery: Skills/Subagenty/Hooks/Print mode, tutoriál v `claude-howto/`
|
||||||
- [Admin PowerShell nefunguje](feedback_admin_powershell.md) — příkazy vyžadující admin práva rovnou napsat uživateli, nezkoušet alternativy
|
- [Admin PowerShell nefunguje](feedback_admin_powershell.md) — příkazy vyžadující admin práva rovnou napsat uživateli, nezkoušet alternativy
|
||||||
|
- [SeaweedFS na Tower1](project_seaweedfs.md) — kontejner na .50 (bloby na array, metadata SSD), noční backup filer metadat na tower .76, retence 7+4
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
name: project-seaweedfs
|
||||||
|
description: "SeaweedFS na Tower1 (192.168.1.50) — kontejner, rozdělení dat, noční backup filer metadat na tower .76"
|
||||||
|
metadata:
|
||||||
|
node_type: memory
|
||||||
|
type: project
|
||||||
|
originSessionId: 958cbde4-e6aa-463e-8d0e-cd7c3f7bf9ec
|
||||||
|
---
|
||||||
|
|
||||||
|
SeaweedFS „na hraní" na Tower1 Unraid (192.168.1.50, root, heslo Vlado7309208104++; SSH jen heslem, klíč nejde). Postaveno 2026-06-12.
|
||||||
|
|
||||||
|
- Kontejner `seaweedfs` (chrislusf/seaweedfs, host network), `weed server -filer -s3`: master :9333, volume :8080, filer :8888, S3 :8333 (anonymní). Limit 1 GB/volume, max 50.
|
||||||
|
- Bloby: share `SeaweedFS` → `/mnt/user/SeaweedFS/data`, array disk9–11 pod paritou (useCache=no). Filer leveldb + master raft: `/mnt/cache2tb0225dec/appdata/seaweedfs/` (SSD, bez parity).
|
||||||
|
- Noční backup filer metadat: cron 03:30 na Tower1 (`/boot/config/plugins/dynamix/seaweedfs-backup.cron`) spouští `/boot/config/scripts/seaweedfs_meta_backup.sh` — `fs.meta.save` přes weed shell → scp na tower 192.168.1.76 do `/mnt/user/Backup/Critical/SeaweedFS/daily/` (drží 7), neděle navíc `weekly/` (drží 4). Log `/var/log/seaweedfs_backup.log`. Restore: `fs.meta.load`.
|
||||||
|
- Tower (.76, root heslo 7309208104) a Tower1 mají vyměněné SSH klíče — z Tower1 na tower jde psát přímo.
|
||||||
|
- Pozor: Unraid flash `/boot` je VFAT (case-insensitive) — share cfg `seaweedfs.cfg` vs `SeaweedFS.cfg` je tentýž soubor. Share nastavení za běhu mění `emcmd "query&string"` (jeden argument, nutné `shareNameOrig` + `cmdEditShare=Apply`), live stav v `/var/local/emhttp/shares.ini`.
|
||||||
@@ -18,4 +18,6 @@ Původní cesta `C:\Users\vlado\.claude\projects\U--janssen\memory` je **directo
|
|||||||
`New-Item -ItemType Junction -Path "$env:USERPROFILE\.claude\projects\U--janssen\memory" -Target "U:\janssen\claude-memory"`
|
`New-Item -ItemType Junction -Path "$env:USERPROFILE\.claude\projects\U--janssen\memory" -Target "U:\janssen\claude-memory"`
|
||||||
Junction sám se přes git nepřenáší (je to lokální odkaz), musí se vytvořit na každém stroji zvlášť. Předpoklad: projekt je na obou strojích na cestě `U:\janssen`.
|
Junction sám se přes git nepřenáší (je to lokální odkaz), musí se vytvořit na každém stroji zvlášť. Předpoklad: projekt je na obou strojích na cestě `U:\janssen`.
|
||||||
|
|
||||||
|
**Sjednocení cest mezi stroji (2026-06-12):** Na Z230 je repo fyzicky v `U:\PythonProject\Janssen`, na notebooku v `U:\janssen`. Řešení: na Z230 junction `New-Item -ItemType Junction -Path U:\janssen -Target U:\PythonProject\Janssen` a Claude Code tam otevírat z `U:\janssen`. Díky tomu platí v `.mcp.json` (i kdekoli jinde) jednotné cesty `U:\janssen\...` a config se už nepřepisuje tam a zpět mezi commity „z230"/„notebook". Výjimka: MCP `owa` a `vbcz-email` (`OutlookVBCZ/`) nejsou v repu, existují jen na Z230 — na notebooku se prostě nepřipojí.
|
||||||
|
|
||||||
Pozn.: dříve testovaný [[setup-memory-sync]] konkurent claude-mem (lokální SQLite, nesynchronizuje mezi PC) byl odinstalován ve prospěch tohoto git/Gitea řešení.
|
Pozn.: dříve testovaný [[setup-memory-sync]] konkurent claude-mem (lokální SQLite, nesynchronizuje mezi PC) byl odinstalován ve prospěch tohoto git/Gitea řešení.
|
||||||
|
|||||||
Reference in New Issue
Block a user