linux-zero/scripts/setup-agents.sh
Cem Varli 0b67aa42f4 Initiale Version: Roman Station Installer
Lokale KI-Station fuer Zorin OS: Bash-Installer + Docker Compose
(Ollama 0.30.7, Open WebUI 0.9.6, n8n 2.25.7), drei roemische
Berater als Ollama-Modelfiles, Theme via gsettings, Desktop-Shortcuts.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 17:21:48 +02:00

46 lines
1.6 KiB
Bash
Executable file

#!/usr/bin/env bash
# Lädt das Standardmodell und erstellt die römischen Berater (Ollama) sowie Beispiel-Workflows (n8n).
set -euo pipefail
log() { printf '\033[1;33m[ROMAN]\033[0m %s\n' "$*"; }
warn() { printf '\033[1;33m[HINWEIS]\033[0m %s\n' "$*"; }
fail() { printf '\033[1;31m[FEHLER]\033[0m %s\n' "$*"; exit 1; }
# shellcheck disable=SC1091
. ./.env
model="${DEFAULT_MODEL:-gemma3:4b}"
dc() { sudo docker compose "$@"; }
log "Warte auf Ollama ..."
ready=0
for _ in $(seq 1 60); do
if dc exec -T ollama ollama list >/dev/null 2>&1; then ready=1; break; fi
sleep 2
done
[ "$ready" = "1" ] || fail "Ollama wurde nicht rechtzeitig bereit — 'sudo docker compose logs ollama' zeigt Details."
log "Lade Sprachmodell $model (beim ersten Mal dauert das einige Minuten) ..."
dc exec -T ollama ollama pull "$model"
for mf in agents/modelfiles/*.Modelfile; do
[ -e "$mf" ] || continue
name="$(basename "$mf" .Modelfile | tr '[:upper:]' '[:lower:]')"
log "Erstelle Berater: $name"
tmp="$(mktemp)"
sed "s|{{MODEL}}|$model|g" "$mf" > "$tmp"
dc cp "$tmp" ollama:/tmp/roman.Modelfile
dc exec -T ollama ollama create "$name" -f /tmp/roman.Modelfile
rm -f "$tmp"
done
for wf in agents/n8n/*.json; do
[ -e "$wf" ] || continue
if dc exec -T n8n n8n import:workflow --input="/workflows/$(basename "$wf")" >/dev/null 2>&1; then
log "n8n-Workflow importiert: $(basename "$wf")"
else
warn "n8n-Workflow $(basename "$wf") konnte nicht automatisch importiert werden — in n8n unter 'Import from File' nachholbar."
fi
done
log "Berater stehen bereit: seneca, cicero, marcus"