Simplify Athena runtime and document current architecture
This commit is contained in:
1 parent
9bc7d9803a
commit
0b927d47b9
56 files changed
+1276
-4712
No files matched your search
@@ -1,9 +0,0 @@
|
||||
# Create a dedicated fine-grained GitHub token. Grant repository contents and
|
||||
# metadata read-only; do not grant write permissions. Keep the real file only
|
||||
# at /etc/mike-ai/github-mcp.env with mode 0600.
|
||||
GITHUB_PERSONAL_ACCESS_TOKEN=
|
||||
|
||||
# Four deliberately bounded repository-reading tools. Do not replace this
|
||||
# with the broad default toolsets unless the resulting schemas were reviewed.
|
||||
GITHUB_TOOLS=search_repositories,get_repository_tree,get_file_contents,search_code
|
||||
GITHUB_READ_ONLY=1
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
AI_HOSTNAME=ki-host
|
||||
ADMIN_USER=mike
|
||||
MODEL_DIR=/srv/mike-ai/models
|
||||
MODEL_DIR=/data/models
|
||||
|
||||
# Installing a new NVIDIA driver can require one reboot. In that case this
|
||||
# installer exits with code 20 (NVIDIA) or 21 (stable NIC rename); rerun the
|
||||
@@ -15,8 +15,8 @@ NVIDIA_DRIVER_BRANCH=
|
||||
NVIDIA_MIN_DRIVER_MAJOR=570
|
||||
TEXT_GPU_DEVICES=0
|
||||
SECONDARY_GPU_DEVICES=1
|
||||
IMAGE_GPU_DEVICES=0
|
||||
FLUX_MODEL_DIR=/data/models/FLUX.2-klein-4B
|
||||
IMAGE_GPU_DEVICES=1
|
||||
Z_IMAGE_MODEL_DIR=/data/models/Z-Image-Turbo
|
||||
|
||||
# Headless remote reachability. Firmware power-loss recovery is configured
|
||||
# separately once at the physical machine.
|
||||
@@ -88,13 +88,6 @@ UNCENSORED_MTP_MAX=2
|
||||
EXPERIMENTAL_CONTEXT=76800
|
||||
LLAMA_THREADS=6
|
||||
LLAMA_THREADS_BATCH=6
|
||||
OPENWEBUI_IMAGE=mike-ai/openwebui:main-01f4282-tool-final-v3
|
||||
OPENWEBUI_ENABLE_SIGNUP=false
|
||||
OPENWEBUI_ENABLE_FOLLOW_UP_GENERATION=false
|
||||
# Removable community Hermes chat surface. Set false to keep only the official
|
||||
# Hermes Dashboard/API and native clients.
|
||||
INSTALL_HERMES_WEBUI=true
|
||||
HERMES_WEBUI_IMAGE=mike-ai/hermes-webui:0.52.113-hermes-source-v1
|
||||
PIPER_TTS_VERSION=1.6.0
|
||||
PIPER_VOICE=de_DE-thorsten-high
|
||||
XTTS_IMAGE=ghcr.io/coqui-ai/xtts-streaming-server:latest-cuda121@sha256:f7fb3b1f9d4bc88af94da1b5959d8002f1e0b003c97557164034eb8a29f01b90
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
{
|
||||
"server": {
|
||||
"id": "himalaya",
|
||||
"hermes_id": "himalaya",
|
||||
"name": "Himalaya Mail",
|
||||
"description": "Apple-unabhängiger Mailzugriff über die Himalaya CLI. Lesen, suchen und Anhänge verwalten; schreibende Mailaktionen nur auf ausdrücklichen Auftrag.",
|
||||
"url": "http://192.168.1.2:8787/mcp/himalaya",
|
||||
"clients": ["hermes"],
|
||||
"timeout": 300,
|
||||
"deployment": {
|
||||
"version": "himalaya-mcp 2.1.2 / himalaya-cli 2.1.0",
|
||||
"source": "https://github.com/Data-Wise/himalaya-mcp",
|
||||
"required_env": ["HIMALAYA_CONFIG"],
|
||||
"required_files": ["himalaya-config.toml"]
|
||||
},
|
||||
"hub": {
|
||||
"type": "stdio",
|
||||
"secret_file": "himalaya.env",
|
||||
"command": "/usr/local/bin/run-with-env",
|
||||
"args": [
|
||||
"/run/secrets/mcphub/himalaya.env",
|
||||
"--",
|
||||
"node",
|
||||
"/app/data/extensions/himalaya/index.js"
|
||||
],
|
||||
"env": {
|
||||
"HIMALAYA_BINARY": "/app/data/extensions/himalaya/himalaya",
|
||||
"MCP_TRANSPORT": "stdio"
|
||||
},
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
"artifacts": [
|
||||
{
|
||||
"source": "/app/data/work/himalaya/himalaya",
|
||||
"path": "himalaya",
|
||||
"sha256": "7bc31ca0ea596218d97f1b2637e14c6653b1ebf9741711ac0f8a675384d67472",
|
||||
"mode": "0755"
|
||||
},
|
||||
{
|
||||
"source": "/app/data/work/himalaya/index.js",
|
||||
"path": "index.js",
|
||||
"sha256": "c8a94a46b33e3e683d38bdfbd5d84f4441e4668780facb5f3e90fc22e68ab683",
|
||||
"mode": "0644"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,186 +0,0 @@
|
||||
{
|
||||
"version": 1,
|
||||
"servers": [
|
||||
{
|
||||
"id": "mcphub-all",
|
||||
"hermes_id": "mcphub",
|
||||
"name": "MCPHub",
|
||||
"description": "Zentraler Zugang zu allen auf Unraid aktivierten MCP-Servern. Neue Server erscheinen nach einem MCP-Reload ohne Änderung der Hermes-Konfiguration.",
|
||||
"url": "http://192.168.1.2:8787/mcp/hermes",
|
||||
"clients": ["hermes"],
|
||||
"env_file": "/etc/mike-ai/mcphub-client.env",
|
||||
"key_env": "MCPHUB_BEARER_TOKEN",
|
||||
"auth_type": "bearer",
|
||||
"timeout": 900
|
||||
},
|
||||
{
|
||||
"id": "mcphub-admin-local",
|
||||
"name": "MCPHub Administration",
|
||||
"description": "Installiert und verwaltet HTTP-, npm- und Python-MCPs direkt über die offizielle MCPHub-API. Kein Unraid-Terminal erforderlich.",
|
||||
"url": "http://192.168.1.2:8787/mcp/mcphub-admin",
|
||||
"clients": [],
|
||||
"timeout": 300,
|
||||
"hub": {
|
||||
"type": "stdio",
|
||||
"command": "python3",
|
||||
"args": ["/opt/casaderoll/mcps/mcphub_admin_mcp.py"],
|
||||
"env": {
|
||||
"MCPHUB_API_URL": "http://127.0.0.1:3000/api",
|
||||
"MCPHUB_API_TOKEN_FILE": "/app/data/client-token",
|
||||
"MCPHUB_CLIENT_GROUP": "hermes"
|
||||
},
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "athena-operator-local",
|
||||
"hermes_id": "athena-operator",
|
||||
"name": "Athena Operator",
|
||||
"description": "Zentrale administrative Schnittstelle für Athena. Beginne mit athena_operator_inspect(subject=guide). Verwaltet Docker, Modelle, MCPs, Git und Backups; Stromversorgung und Remote-Erreichbarkeit bleiben blockiert.",
|
||||
"url": "http://192.168.1.2:8787/mcp/athena-operator",
|
||||
"clients": ["openwebui"],
|
||||
"env_file": "/etc/mike-ai/mcphub-client.env",
|
||||
"key_env": "MCPHUB_BEARER_TOKEN",
|
||||
"auth_type": "bearer",
|
||||
"timeout": 900,
|
||||
"hub": {
|
||||
"type": "streamable-http",
|
||||
"url": "http://192.168.1.212:8202/mcp",
|
||||
"owner": "admin",
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "github-local",
|
||||
"hermes_id": "github",
|
||||
"name": "GitHub (offiziell, read-only)",
|
||||
"description": "Repository-Suche, echte Datei-Inhalte und gezielte Code-Suche. Keine rekursiven Komplettbäume oder Schreibzugriffe.",
|
||||
"url": "http://192.168.1.2:8787/mcp/github",
|
||||
"clients": ["openwebui"],
|
||||
"env_file": "/etc/mike-ai/mcphub-client.env",
|
||||
"key_env": "MCPHUB_BEARER_TOKEN",
|
||||
"auth_type": "bearer",
|
||||
"timeout": 300,
|
||||
"functions": "github-search_repositories,github-get_file_contents,github-search_code",
|
||||
"hub": {
|
||||
"type": "stdio",
|
||||
"command": "/usr/local/bin/run-with-env",
|
||||
"args": ["/run/secrets/mcphub/github.env", "--", "/usr/local/bin/github-mcp-server", "stdio", "--read-only", "--tools", "search_repositories,get_file_contents,search_code"],
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "homeassistant-local",
|
||||
"hermes_id": "homeassistant-admin",
|
||||
"name": "Home Assistant",
|
||||
"description": "Entitäten, Zustände, Historie, Automationen, Dashboards, Diagnose und freigegebene YAML-Dateien. Änderungen nur auf ausdrücklichen Auftrag.",
|
||||
"url": "http://192.168.1.2:8787/mcp/homeassistant",
|
||||
"clients": ["openwebui"],
|
||||
"env_file": "/etc/mike-ai/mcphub-client.env",
|
||||
"key_env": "MCPHUB_BEARER_TOKEN",
|
||||
"auth_type": "bearer",
|
||||
"timeout": 300,
|
||||
"hub": {
|
||||
"type": "streamable-http",
|
||||
"secret_file": "homeassistant.env",
|
||||
"url": "${HASS_URL}/api/hass_mcp",
|
||||
"headers": {"Authorization": "Bearer ${HASS_TOKEN}"},
|
||||
"owner": "admin",
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "arr-local",
|
||||
"hermes_id": "arr",
|
||||
"name": "Sonarr und Radarr",
|
||||
"description": "Serien, Filme, Queue, Indexer-Suche und kompakte Medieninventare. Für Codec-Fragen radarr_movie_codec_inventory verwenden; keine rohen API-Requests oder Dateisystem-Scans.",
|
||||
"url": "http://192.168.1.2:8787/mcp/arr",
|
||||
"clients": ["openwebui"],
|
||||
"env_file": "/etc/mike-ai/mcphub-client.env",
|
||||
"key_env": "MCPHUB_BEARER_TOKEN",
|
||||
"auth_type": "bearer",
|
||||
"timeout": 600,
|
||||
"hub": {
|
||||
"type": "stdio",
|
||||
"command": "/usr/local/bin/run-with-env",
|
||||
"args": ["/run/secrets/mcphub/arr.env", "--", "arr-mcp", "--transport", "stdio", "--auth-type", "none"],
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "navidrome-local",
|
||||
"hermes_id": "navidrome",
|
||||
"name": "Navidrome",
|
||||
"description": "Persönliche Musikbibliothek: Titel, Alben, Künstler, Playlists, Favoriten und Hörverlauf.",
|
||||
"url": "http://192.168.1.2:8787/mcp/navidrome",
|
||||
"clients": ["openwebui"],
|
||||
"env_file": "/etc/mike-ai/mcphub-client.env",
|
||||
"key_env": "MCPHUB_BEARER_TOKEN",
|
||||
"auth_type": "bearer",
|
||||
"timeout": 300,
|
||||
"hub": {
|
||||
"type": "stdio",
|
||||
"command": "/usr/local/bin/run-with-env",
|
||||
"args": ["/run/secrets/mcphub/navidrome.env", "--", "node", "/opt/casaderoll/navidrome/dist/index.js"],
|
||||
"env": {"MCP_TRANSPORT": "stdio", "MCP_HTTP_EXPOSE": "false", "WEBUI_ENABLED": "false"},
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "mua",
|
||||
"hermes_id": "unraid",
|
||||
"name": "MUA (Unraid-Verwaltung)",
|
||||
"description": "Unraid-Verwaltung über das vorhandene MUA-Plugin. Zustand zuerst lesen, engste Änderung ausführen, danach verifizieren.",
|
||||
"url": "http://192.168.1.2:8787/mcp/unraid",
|
||||
"key_env": "MCPHUB_BEARER_TOKEN",
|
||||
"env_file": "/etc/mike-ai/mcphub-client.env",
|
||||
"auth_type": "bearer",
|
||||
"clients": ["openwebui"],
|
||||
"timeout": 900,
|
||||
"hub": {
|
||||
"type": "streamable-http",
|
||||
"secret_file": "mua.env",
|
||||
"url": "${MUA_MCP_URL}",
|
||||
"headers": {"Authorization": "Bearer ${MUA_MCP_BEARER_TOKEN}"},
|
||||
"owner": "admin",
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "fritzbox-local",
|
||||
"hermes_id": "fritzbox",
|
||||
"name": "FRITZ!Box",
|
||||
"description": "FRITZ!Box-Status, WAN/Glasfaser, Netzwerkgeräte, WLAN und Telefonie. Zuerst die aktive WAN-Verbindung ermitteln; Änderungen nur auf ausdrücklichen Auftrag.",
|
||||
"url": "http://192.168.1.2:8787/mcp/fritzbox",
|
||||
"key_env": "MCPHUB_BEARER_TOKEN",
|
||||
"env_file": "/etc/mike-ai/mcphub-client.env",
|
||||
"auth_type": "bearer",
|
||||
"clients": ["openwebui"],
|
||||
"timeout": 300,
|
||||
"tool_include": [
|
||||
"fritzbox-list_services",
|
||||
"fritzbox-list_actions",
|
||||
"fritzbox-describe_action",
|
||||
"fritzbox-call_action"
|
||||
],
|
||||
"hub": {
|
||||
"type": "stdio",
|
||||
"command": "/usr/local/bin/run-with-env",
|
||||
"args": ["/run/secrets/mcphub/fritzbox.env", "--", "/opt/casaderoll/fritz-mcp"],
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "mua-readonly-local",
|
||||
"name": "MUA (Unraid read-only)",
|
||||
"description": "Automatisch nutzbare Unraid-Diagnose für Container, Logs, System, Storage, Shares und Medieninventare. Keine Änderungen oder freie Shell.",
|
||||
"url": "http://192.168.1.2:8787/mcp/unraid",
|
||||
"key_env": "MCPHUB_BEARER_TOKEN",
|
||||
"env_file": "/etc/mike-ai/mcphub-client.env",
|
||||
"auth_type": "bearer",
|
||||
"clients": ["openwebui"],
|
||||
"timeout": 900,
|
||||
"functions": "unraid-unraid_docker_list,unraid-unraid_docker_inspect,unraid-unraid_docker_logs,unraid-unraid_docker_analyze_logs,unraid-unraid_docker_processes,unraid-unraid_docker_stats,unraid-unraid_docker_info,unraid-unraid_docker_update_status,unraid-unraid_ca_search,unraid-unraid_network_inventory,unraid-unraid_network_list,unraid-unraid_network_inspect,unraid-unraid_network_host_state,unraid-unraid_network_audit_tcp,unraid-unraid_network_lan_probe,unraid-unraid_system_health,unraid-unraid_storage_status,unraid-unraid_disk_health,unraid-unraid_notifications_list,unraid-unraid_shares_list,unraid-unraid_share_inspect,unraid-unraid_files_inventory,unraid-unraid_system_connection_test,unraid-unraid_system_shell_readonly"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
# Shared bearer key generated by platform/mcphub/configure-settings.py.
|
||||
# The live value is stored in MCPHub appdata/client-token and copied only to
|
||||
# /etc/mike-ai/mcphub-client.env on clients.
|
||||
MCPHUB_BEARER_TOKEN=REPLACE_WITH_LOCAL_MCPHUB_CLIENT_TOKEN
|
||||
@@ -1,4 +0,0 @@
|
||||
# Root-only auf Athena unter /etc/mike-ai/mua-mcp.env ablegen (Modus 0600).
|
||||
# Der echte Bearer-Token gehört niemals ins Git-Repository.
|
||||
MUA_MCP_URL=http://192.168.1.2:3002/mcp
|
||||
MUA_MCP_BEARER_TOKEN=REPLACE_WITH_MUA_BEARER_TOKEN
|
||||
@@ -1,8 +0,0 @@
|
||||
# Root-only deployment secret. Copy to /etc/mike-ai/navidrome-mcp.env,
|
||||
# replace the two placeholders and chmod 600. Never commit the real file.
|
||||
NAVIDROME_URL=http://192.168.1.2:4533
|
||||
NAVIDROME_USERNAME=REPLACE_WITH_DEDICATED_USER
|
||||
NAVIDROME_PASSWORD=REPLACE_WITH_DEDICATED_PASSWORD
|
||||
# Optional: enables seven public Last.fm discovery/recommendation tools.
|
||||
# The Last.fm shared secret is not required and must not be stored here.
|
||||
LASTFM_API_KEY=
|
||||
@@ -1,23 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<Container version="2">
|
||||
<Name>ARR-MCP</Name>
|
||||
<Repository>mike-ai/arr-mcp:1.1.0</Repository>
|
||||
<Network>bridge</Network>
|
||||
<Shell>sh</Shell>
|
||||
<Privileged>false</Privileged>
|
||||
<Project>https://git.casaderoll.de/michael/AI-Profile-Router</Project>
|
||||
<ReadMe>https://git.casaderoll.de/michael/AI-Profile-Router/src/branch/main/services/arr-mcp/README.md</ReadMe>
|
||||
<Overview>Eigenständiger Sonarr- und Radarr-MCP für Hermes und andere MCP-Clients. Das lokale Image wird reproduzierbar aus dem privaten Git gebaut. Der Container nutzt kompakte, modellfreundliche Werkzeuge, ein begrenztes Codec-Inventar und ticketgebundene Sonarr-Schreibaktionen. Konfiguration und Schlüssel liegen ausschließlich in Unraid-Appdata.</Overview>
|
||||
<Category>AI:</Category>
|
||||
<WebUI/>
|
||||
<TemplateURL>false</TemplateURL>
|
||||
<Icon>https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png</Icon>
|
||||
<ExtraParams>--read-only --cap-drop=ALL --security-opt=no-new-privileges --pids-limit=256 --tmpfs /tmp:rw,noexec,nosuid,nodev,size=64m --env-file=/mnt/nvme-storage/appdata/ARR-MCP/arr-mcp.env</ExtraParams>
|
||||
<PostArgs/>
|
||||
<CPUset/>
|
||||
<DateInstalled/>
|
||||
<DonateText/>
|
||||
<DonateLink/>
|
||||
<Requires>Das lokale Image mike-ai/arr-mcp:1.1.0 muss vorher mit services/arr-mcp/install-on-unraid.sh gebaut worden sein.</Requires>
|
||||
<Config Name="MCP Port" Target="8000" Default="8207" Mode="tcp" Description="Streamable-HTTP-Endpunkt; MCP-URL ist http://UNRAID-IP:8207/mcp." Type="Port" Display="always" Required="true" Mask="false">8207</Config>
|
||||
</Container>
|
||||
@@ -1,50 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<Container version="2">
|
||||
<Name>Hermes-Agent</Name>
|
||||
<Repository>nousresearch/hermes-agent:latest</Repository>
|
||||
<Registry>https://hub.docker.com/r/nousresearch/hermes-agent</Registry>
|
||||
<Network>bridge</Network>
|
||||
<MyIP/>
|
||||
<Shell>bash</Shell>
|
||||
<Privileged>false</Privileged>
|
||||
<Support>https://github.com/NousResearch/hermes-agent/issues</Support>
|
||||
<Project>https://hermes-agent.nousresearch.com/</Project>
|
||||
<ReadMe>https://github.com/NousResearch/hermes-agent/blob/main/website/docs/user-guide/docker.md</ReadMe>
|
||||
<Overview>Offizieller Hermes Agent von Nous Research als persistenter Gateway- und Dashboard-Dienst. Dieses Unraid-Template verwendet unverändert das offizielle Image nousresearch/hermes-agent:latest; es enthält keinen Fork und keine eigene Build-Schicht. Sämtliche Konfigurationen, Sitzungen, Skills, Erinnerungen und Zugangsdaten liegen dauerhaft unter /opt/data im Unraid-Appdata.
|
||||
|
||||
Vor dem ersten Start müssen sichere Werte für API-Key, Dashboard-Passwort und Dashboard-Secret eingetragen werden. Der Container startet den offiziellen Befehl gateway run.
|
||||
|
||||
Dokumentation: https://hermes-agent.nousresearch.com/docs/user-guide/docker</Overview>
|
||||
<Category>AI:</Category>
|
||||
<WebUI>http://[IP]:[PORT:9119]/</WebUI>
|
||||
<TemplateURL>false</TemplateURL>
|
||||
<Icon>https://raw.githubusercontent.com/NousResearch/hermes-agent/main/web/public/favicon.ico</Icon>
|
||||
<ExtraParams>--shm-size=1g</ExtraParams>
|
||||
<PostArgs>gateway run</PostArgs>
|
||||
<CPUset/>
|
||||
<DateInstalled/>
|
||||
<DonateText/>
|
||||
<DonateLink/>
|
||||
<Requires/>
|
||||
|
||||
<Config Name="Hermes Appdata" Target="/opt/data" Default="/mnt/nvme-storage/appdata/Hermes-Agent" Mode="rw" Description="Einzige persistente Datenquelle: Konfiguration, Schlüssel, Sitzungen, Skills, Erinnerungen, Logs und Arbeitszustand. Wird vom Unraid-Appdata-Backup erfasst." Type="Path" Display="always" Required="true" Mask="false">/mnt/nvme-storage/appdata/Hermes-Agent</Config>
|
||||
|
||||
<Config Name="Gateway/API Port" Target="8642" Default="8642" Mode="tcp" Description="OpenAI-kompatible Hermes Gateway-API und Health-Endpunkt." Type="Port" Display="always" Required="true" Mask="false">8642</Config>
|
||||
<Config Name="Dashboard Port" Target="9119" Default="9119" Mode="tcp" Description="Offizielles Hermes Dashboard und Chat-Oberfläche." Type="Port" Display="always" Required="true" Mask="false">9119</Config>
|
||||
|
||||
<Config Name="Hermes UID" Target="HERMES_UID" Default="10000" Mode="" Description="Offizielle Container-UID. Nur ändern, wenn das Appdata bewusst einer anderen UID gehört." Type="Variable" Display="advanced" Required="true" Mask="false">10000</Config>
|
||||
<Config Name="Hermes GID" Target="HERMES_GID" Default="10000" Mode="" Description="Offizielle Container-GID. Nur ändern, wenn das Appdata bewusst einer anderen GID gehört." Type="Variable" Display="advanced" Required="true" Mask="false">10000</Config>
|
||||
|
||||
<Config Name="API aktivieren" Target="API_SERVER_ENABLED" Default="true" Mode="" Description="Aktiviert die OpenAI-kompatible Gateway-API." Type="Variable" Display="always" Required="true" Mask="false">true</Config>
|
||||
<Config Name="API Bind-Adresse" Target="API_SERVER_HOST" Default="0.0.0.0" Mode="" Description="Im Container auf allen Interfaces lauschen, damit Unraids Portweiterleitung funktioniert." Type="Variable" Display="advanced" Required="true" Mask="false">0.0.0.0</Config>
|
||||
<Config Name="Interner API-Port" Target="API_SERVER_PORT" Default="8642" Mode="" Description="Muss zum Container-Port des Gateway/API-Port-Eintrags passen." Type="Variable" Display="advanced" Required="true" Mask="false">8642</Config>
|
||||
<Config Name="API-Schlüssel" Target="API_SERVER_KEY" Default="" Mode="" Description="Erforderlicher Bearer-Schlüssel für Clients. Mit openssl rand -hex 32 erzeugen und nicht wiederverwenden." Type="Variable" Display="always" Required="true" Mask="true"></Config>
|
||||
<Config Name="API CORS Origins" Target="API_SERVER_CORS_ORIGINS" Default="*" Mode="" Description="Erlaubte Browser-Ursprünge. Im privaten VPN kann * genutzt werden; bei öffentlicher Bereitstellung gezielt einschränken." Type="Variable" Display="advanced" Required="true" Mask="false">*</Config>
|
||||
|
||||
<Config Name="Dashboard aktivieren" Target="HERMES_DASHBOARD" Default="1" Mode="" Description="Startet das offizielle Hermes Dashboard zusammen mit dem Gateway." Type="Variable" Display="always" Required="true" Mask="false">1</Config>
|
||||
<Config Name="Dashboard Bind-Adresse" Target="HERMES_DASHBOARD_HOST" Default="0.0.0.0" Mode="" Description="Im Container auf allen Interfaces lauschen, damit Unraids Portweiterleitung funktioniert." Type="Variable" Display="advanced" Required="true" Mask="false">0.0.0.0</Config>
|
||||
<Config Name="Interner Dashboard-Port" Target="HERMES_DASHBOARD_PORT" Default="9119" Mode="" Description="Muss zum Container-Port des Dashboard-Port-Eintrags passen." Type="Variable" Display="advanced" Required="true" Mask="false">9119</Config>
|
||||
<Config Name="Dashboard Benutzer" Target="HERMES_DASHBOARD_BASIC_AUTH_USERNAME" Default="admin" Mode="" Description="Benutzername für die Dashboard-Anmeldung." Type="Variable" Display="always" Required="true" Mask="false">admin</Config>
|
||||
<Config Name="Dashboard Passwort" Target="HERMES_DASHBOARD_BASIC_AUTH_PASSWORD" Default="" Mode="" Description="Eigenes starkes Passwort; absichtlich ohne unsicheren Standardwert." Type="Variable" Display="always" Required="true" Mask="true"></Config>
|
||||
<Config Name="Dashboard Session-Secret" Target="HERMES_DASHBOARD_BASIC_AUTH_SECRET" Default="" Mode="" Description="Separates zufälliges Secret für Dashboard-Sitzungen. Mit openssl rand -hex 32 erzeugen." Type="Variable" Display="always" Required="true" Mask="true"></Config>
|
||||
</Container>
|
||||
@@ -1,38 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<Container version="2">
|
||||
<Name>MCPHub</Name>
|
||||
<Repository>casaderoll/mcphub:1.2.5</Repository>
|
||||
<Registry>https://hub.docker.com/r/samanhappy/mcphub</Registry>
|
||||
<Network>bridge</Network>
|
||||
<MyIP/>
|
||||
<MyMAC/>
|
||||
<Shell>sh</Shell>
|
||||
<Privileged>false</Privileged>
|
||||
<Support>https://github.com/samanhappy/mcphub/issues</Support>
|
||||
<Project>https://github.com/samanhappy/mcphub</Project>
|
||||
<ReadMe>https://github.com/samanhappy/mcphub#readme</ReadMe>
|
||||
<Overview>Zentrale MCP-Verwaltung mit Weboberfläche. Das lokale CasaDeRoll-Image basiert reproduzierbar auf MCPHub 1.0.32 und enthält die versionierten ARR-, Navidrome-, GitHub- und FritzBox-Laufzeiten. Zusätzliche portable MCPs liegen updatefest im gemounteten Appdata-Verzeichnis und benötigen keinen Image-Neubau. Home Assistant, MUA und der Athena Operator werden als vorhandene HTTP-MCPs eingebunden. Einzelne Server bleiben unter /mcp/NAME getrennt sichtbar und schaltbar. Hermes nutzt für allgemeine Webrecherche seine eingebauten Werkzeuge.
|
||||
|
||||
Weboberfläche: http://[IP]:[PORT:3000]/
|
||||
Benutzer beim ersten Start: admin
|
||||
Wenn kein Admin-Passwort eingetragen wird, erzeugt MCPHub eines und schreibt es ins Containerprotokoll.</Overview>
|
||||
<Category>Tools:Utilities AI:</Category>
|
||||
<WebUI>http://[IP]:[PORT:3000]/</WebUI>
|
||||
<TemplateURL/>
|
||||
<Icon>https://github.com/samanhappy.png</Icon>
|
||||
<ExtraParams>--restart=unless-stopped</ExtraParams>
|
||||
<PostArgs/>
|
||||
<CPUset/>
|
||||
<DateInstalled>0</DateInstalled>
|
||||
<DonateText/>
|
||||
<DonateLink/>
|
||||
<Requires/>
|
||||
<Config Name="WebUI und MCP Port" Target="3000" Default="8787" Mode="tcp" Description="Weboberfläche und MCP-Endpunkte. Beispiel: http://UNRAID-IP:8787/mcp" Type="Port" Display="always" Required="true" Mask="false">8787</Config>
|
||||
<Config Name="Persistente Daten" Target="/app/data" Default="/mnt/nvme-storage/appdata/MCPHub" Mode="rw" Description="Benutzer, Einstellungen, Serverdefinitionen, Schlüssel und Laufzeitstatus. Dieses Verzeichnis wird vom Unraid-Appdata-Backup erfasst." Type="Path" Display="always" Required="true" Mask="false">/mnt/nvme-storage/appdata/MCPHub</Config>
|
||||
<Config Name="MCP-Konfigurationen" Target="/run/secrets/mcphub" Default="/mnt/nvme-storage/appdata/MCPHub/secrets" Mode="ro" Description="Lokale API-Zugänge der verwalteten MCP-Unterprozesse. Das Verzeichnis ist nur im Container lesbar und wird vom Appdata-Backup erfasst." Type="Path" Display="always" Required="true" Mask="false">/mnt/nvme-storage/appdata/MCPHub/secrets</Config>
|
||||
<Config Name="Admin-Passwort" Target="ADMIN_PASSWORD" Default="" Mode="" Description="Optional vor dem ersten Start setzen. Leer lassen erzeugt ein Zufallspasswort, das im Containerprotokoll angezeigt wird." Type="Variable" Display="always" Required="false" Mask="true"></Config>
|
||||
<Config Name="Node-Umgebung" Target="NODE_ENV" Default="production" Mode="" Description="Produktionsmodus für MCPHub." Type="Variable" Display="advanced" Required="true" Mask="false">production</Config>
|
||||
<Config Name="Anfrage-Timeout" Target="REQUEST_TIMEOUT" Default="120000" Mode="" Description="Zeitlimit für MCP-Aufrufe in Millisekunden." Type="Variable" Display="advanced" Required="true" Mask="false">120000</Config>
|
||||
<Config Name="Zeitzone" Target="TZ" Default="Europe/Berlin" Mode="" Description="Lokale Zeitzone für Protokolle und Zeitangaben." Type="Variable" Display="advanced" Required="true" Mask="false">Europe/Berlin</Config>
|
||||
<TailscaleStateDir/>
|
||||
</Container>
|
||||
Reference in new issue
Block a user