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>
46 lines
1.6 KiB
Bash
Executable file
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"
|