Simplify Athena stack and recovery
This commit is contained in:
+30
-12
@@ -1,5 +1,10 @@
|
||||
name: mike-ai
|
||||
|
||||
# One project and one command. Fach-MCPs remain in their own source file, but
|
||||
# Compose loads them into this same stack instead of a second project.
|
||||
include:
|
||||
- path: platform/mcp/compose.yaml
|
||||
|
||||
x-llama-common: &llama-common
|
||||
image: ${LLAMA_IMAGE:-mike-ai/llama.cpp:local}
|
||||
restart: "no"
|
||||
@@ -748,6 +753,9 @@ services:
|
||||
image: ${OPENWEBUI_IMAGE:-mike-ai/openwebui:main-01f4282-agent-loop-v9}
|
||||
container_name: mike-ai-open-webui
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
# SQLite is quiesced briefly while the scheduled data backup is created.
|
||||
docker-volume-backup.stop-during-backup: "true"
|
||||
volumes:
|
||||
- open-webui-data:/app/backend/data
|
||||
# Upstream-supported static customization hooks. Keeping these files in
|
||||
@@ -793,18 +801,6 @@ services:
|
||||
# one additional model turn is required to synthesize the visible answer.
|
||||
CHAT_RESPONSE_MAX_TOOL_CALL_ITERATIONS: "48"
|
||||
USER_AGENT: "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"
|
||||
# Seed native MCP connections on a fresh Open WebUI database. Secrets
|
||||
# stay inside the tool containers, so these internal URLs need no keys.
|
||||
TOOL_SERVER_CONNECTIONS: >-
|
||||
[
|
||||
{"url":"http://mike-ai-mcp-platform-context:8000/mcp","path":"","type":"mcp","auth_type":"none","headers":null,"key":"","config":{"enable":true,"access_grants":[]},"info":{"id":"athena-platform","name":"Athena Plattformwissen","description":"Zuerst aktivieren und verwenden, wenn an Athena/MikeAI, Modellen, Profilen, Router, OpenWebUI, MCPs, TTS/STT, Vision, Netzwerk oder Recovery gearbeitet wird. Liefert versionierte Dokumentation und einen begrenzten aktuellen Systemstand. Dokumentationspflege nur über Vorschau und ausdrückliche Freigabe; keine Container-, Shell-, Netzwerk-, Git- oder Secretrechte."}},
|
||||
{"url":"http://tinysearch:8000/mcp","path":"","type":"mcp","auth_type":"none","headers":null,"key":"","config":{"enable":true,"access_grants":[]},"info":{"id":"web-general-local","name":"Allgemeines Web (TinySearch)","description":"Breite, portable Websuche und Seitenabruf für beliebige öffentliche Websites. In OpenWebUI ist native search_web/fetch_url standardmäßig aktiv; dieser Upstream-MCP ist die portable Alternative für Hermes, Pi und manuelle Nutzung. Kurze, gezielte Abfragen bevorzugen."}},
|
||||
{"url":"http://mike-ai-mcp-github:8000/mcp","path":"","type":"mcp","auth_type":"none","headers":null,"key":"","config":{"enable":true,"access_grants":[],"function_name_filter_list":"search_repositories,get_file_contents,search_code"},"info":{"id":"github-local","name":"GitHub (offiziell, read-only)","description":"Für Repositorysuche, echte Datei-Inhalte und gezielte Code-Suche. Strikt read-only mit genau drei Werkzeugen; keine rekursiven Komplettbäume, allgemeine Webrecherche oder Änderungen."}},
|
||||
{"url":"http://mike-ai-mcp-homeassistant:8000/mcp","path":"","type":"mcp","auth_type":"none","headers":null,"key":"","config":{"enable":true,"access_grants":[]},"info":{"id":"homeassistant-local","name":"Home Assistant (lokal)","description":"Für Home-Assistant-Entitäten, Zustände, Historie, Automationen, Dashboards, HA-Diagnose und freigegebene YAML-Dateien. YAML-Lesen ist begrenzt; Änderungen benötigen serverseitige Vorschau, explizite Freigabe, Sicherung und Validierung. Nicht für Unraid, Sonarr/Radarr oder allgemeine Websuche."}},
|
||||
{"url":"http://mike-ai-mcp-arr:8000/mcp","path":"","type":"mcp","auth_type":"none","headers":null,"key":"","config":{"enable":true,"access_grants":[]},"info":{"id":"arr-local","name":"Sonarr und Radarr (lokal)","description":"Nur für verwaltete Serien/Filme, fehlende Episoden, Queue und Suche über konfigurierte Indexer. Keine allgemeine Websuche; Schreibaktionen benötigen Vorschau und Freigabe."}},
|
||||
{"url":"http://mike-ai-mcp-navidrome:3000/mcp","path":"","type":"mcp","auth_type":"none","headers":null,"key":"","config":{"enable":true,"access_grants":[]},"info":{"id":"navidrome-local","name":"Navidrome (Musikbibliothek)","description":"Nur für die persönliche Navidrome-Musikbibliothek: Titel, Alben, Künstler, Playlists, Favoriten und Hörverlauf. Nicht für Sonarr/Radarr, allgemeine Websuche oder Audioausgabe auf dem KI-Host. Wegen des großen Werkzeugkatalogs nur bei Musikaufgaben aktivieren."}},
|
||||
{"url":"http://mike-ai-mcp-deemix:8000/mcp","path":"","type":"mcp","auth_type":"none","headers":null,"key":"","config":{"enable":true,"access_grants":[]},"info":{"id":"deemix-local","name":"Deemix (bestehende Unraid-Instanz)","description":"Durchsucht Deezer über die vorhandene Deemix-Instanz auf Unraid und verwaltet deren Download-Queue. Keine zweite Deemix-Instanz. Schreibende Queue-Aktionen nur auf ausdrücklichen Benutzerauftrag; Status und Suche sind read-only."}}
|
||||
]
|
||||
DO_NOT_TRACK: "true"
|
||||
SCARF_NO_ANALYTICS: "true"
|
||||
dns: ["${AI_DNS:-1.1.1.1}"]
|
||||
@@ -913,6 +909,28 @@ services:
|
||||
hermes-webui:
|
||||
condition: service_healthy
|
||||
|
||||
backup:
|
||||
image: ${BACKUP_IMAGE:-offen/docker-volume-backup@sha256:19102d8e59eb1d598cf8c647c2b21100abaadc5a1c808ac643fa612e323c3013}
|
||||
container_name: mike-ai-backup
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
BACKUP_CRON_EXPRESSION: "0 */5 * * *"
|
||||
BACKUP_FILENAME: "athena-%Y-%m-%dT%H-%M-%S.tar.gz"
|
||||
BACKUP_LATEST_SYMLINK: athena-latest.tar.gz
|
||||
BACKUP_RETENTION_DAYS: "14"
|
||||
BACKUP_PRUNING_PREFIX: athena-
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
||||
- /data/docker-backups:/archive
|
||||
- /etc/mike-ai:/backup/etc-mike-ai:ro
|
||||
- /opt/mike-ai/stack:/backup/stack:ro
|
||||
- open-webui-data:/backup/volumes/open-webui-data:ro
|
||||
- piper-data:/backup/volumes/piper-data:ro
|
||||
- router-state:/backup/volumes/router-state:ro
|
||||
- router-images:/backup/volumes/router-images:ro
|
||||
- tinysearch-models:/backup/volumes/tinysearch-models:ro
|
||||
security_opt: ["no-new-privileges:true"]
|
||||
|
||||
networks:
|
||||
frontend:
|
||||
internal: false
|
||||
|
||||
Reference in New Issue
Block a user