From 689bf3eed3b84045e3249698da4024201babf526 Mon Sep 17 00:00:00 2001 From: Hitonabi Date: Fri, 26 Jun 2026 19:31:10 +0200 Subject: [PATCH] =?UTF-8?q?Feat:=20LobeChat-Deployment-Artefakte=20(Hermes?= =?UTF-8?q?-Chat-Frontend)=20f=C3=BCr=20Proxmox?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit deploy/lobechat/: docker-compose.yml (client-only, lobehub/lobe-chat), .env.example, README. Spricht den MC2-Gateway (:9001/v1) der AI-Box an, fixierte Modell-Liste + vorkonfigurierter Hermes-Assistent. Läuft auf dem Proxmox-MiniPC, nicht auf der AI-Box (hält die Box schlank). Ersetzt nesquena/ hermes-webui. Co-Authored-By: Claude Opus 4.8 --- deploy/lobechat/.env.example | 13 +++++++++ deploy/lobechat/README.md | 42 ++++++++++++++++++++++++++++++ deploy/lobechat/docker-compose.yml | 25 ++++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 deploy/lobechat/.env.example create mode 100644 deploy/lobechat/README.md create mode 100644 deploy/lobechat/docker-compose.yml diff --git a/deploy/lobechat/.env.example b/deploy/lobechat/.env.example new file mode 100644 index 0000000..090e08b --- /dev/null +++ b/deploy/lobechat/.env.example @@ -0,0 +1,13 @@ +# LobeChat-Konfiguration (auf dem Proxmox-MiniPC). Kopiere zu .env und anpassen. + +# OpenAI-kompatibler Endpoint der AI-Box. Optionen: +# MC2-Gateway (empfohlen, model:auto + alle Modelle): http://192.168.178.151:9001/v1 +# llama-swap direkt (nur Modell-Liste): http://192.168.178.151:8080/v1 +# hermes-agent (Agent mit Tools/MCP, falls gewünscht): http://192.168.178.151:8642/v1 +AI_BOX_GATEWAY=http://192.168.178.151:9001/v1 + +# Dummy-Key (lokale Endpoints prüfen ihn nicht): +OPENAI_API_KEY=mc2-local + +# Zugangscode fürs Web-UI (PFLICHT — frei wählen): +ACCESS_CODE=bitte-aendern diff --git a/deploy/lobechat/README.md b/deploy/lobechat/README.md new file mode 100644 index 0000000..099c6cd --- /dev/null +++ b/deploy/lobechat/README.md @@ -0,0 +1,42 @@ +# LobeChat — Hermes-Chat-Frontend (ersetzt nesquena/hermes-webui) + +Läuft auf dem **Proxmox-MiniPC** (nicht auf der AI-Box). Schlanke client-only Edition: +kein Postgres/Auth/S3, Verlauf liegt im Browser. Spricht über LAN den OpenAI-kompatiblen +**MC2-Gateway** der AI-Box an (`:9001/v1`, liefert `model:auto` + alle llama-swap-Modelle). + +## Installation (auf dem Proxmox-Host bzw. einem LXC/VM mit Docker) +```bash +# In einem LXC/VM mit Docker + compose-Plugin: +mkdir -p ~/lobechat && cd ~/lobechat +# docker-compose.yml + .env.example aus diesem Ordner herkopieren +cp .env.example .env +nano .env # ACCESS_CODE setzen, AI_BOX_GATEWAY prüfen +docker compose up -d +``` +Öffnen: `http://:3210` → Zugangscode = `ACCESS_CODE`. + +## Was ist vorkonfiguriert +- **Modell-Liste** auf `Hermes-4-14B`, `Qwen3.6-35B-A3B` (fast), `Qwen3-Coder-Next`, + `Qwen3.5-122B-A10B` (heavy) und `auto` fixiert (`OPENAI_MODEL_LIST`). +- **Hermes-Standardassistent** (Modell `Hermes-4-14B` + System-Prompt) via + `DEFAULT_AGENT_CONFIG`. + +## Endpoint-Wahl (in `.env`) +- **MC2-Gateway `:9001/v1`** *(Default, empfohlen)* — OpenAI-kompatibel, `model:auto`, + Token-Tracking, alle Modelle. +- **llama-swap `:8080/v1`** — direkt, ohne Routing/Token-Tracking. +- **hermes-agent `:8642/v1`** — nur falls die Chat-UI den **Agenten** (Tools/MCP/Memory) + nutzen soll; API-Kompatibilität vorher prüfen. + +## Cutover (alte hermes-webui ablösen) +Auf der **AI-Box**: +```bash +systemctl --user disable --now hermes-webui +``` +In MC2 den „Hermes öffnen"-Link auf LobeChat zeigen lassen: +`HERMES_WEBUI_URL=http://:3210` (env der `mission-control-2.service`). + +## Hinweis +Tool-/Function-Calls streamt llama.cpp nicht nativ — für reine Chat-Nutzung irrelevant. +Bei Bedarf an persistenter History/RAG später auf die DB-Edition (Postgres+pgvector) +umstellen. diff --git a/deploy/lobechat/docker-compose.yml b/deploy/lobechat/docker-compose.yml new file mode 100644 index 0000000..9711649 --- /dev/null +++ b/deploy/lobechat/docker-compose.yml @@ -0,0 +1,25 @@ +# LobeChat als Hermes-Chat-Frontend — läuft auf dem Proxmox-MiniPC (Docker/LXC), +# NICHT auf der AI-Box. Spricht über LAN den OpenAI-kompatiblen MC2-Gateway der Box an. +# Client-only Edition (kein Postgres/Auth/S3) — bewusst schlank ("nicht overengineeren"). +# +# Start: cp .env.example .env && $EDITOR .env && docker compose up -d +# Öffnen: http://:3210 (Zugangscode = ACCESS_CODE) + +services: + lobe-chat: + image: lobehub/lobe-chat:latest + container_name: lobe-chat + restart: unless-stopped + ports: + - "3210:3210" + environment: + # --- Provider: MC2-Gateway der AI-Box (OpenAI-kompatibel, liefert model:auto + alle Modelle) --- + - OPENAI_API_KEY=${OPENAI_API_KEY:-mc2-local} + - OPENAI_PROXY_URL=${AI_BOX_GATEWAY:-http://192.168.178.151:9001/v1} + # Modell-Auswahl auf unsere llama-swap-Modelle fixieren (-all entfernt Defaults): + - "OPENAI_MODEL_LIST=-all,+Hermes-4-14B,+Qwen3.6-35B-A3B,+Qwen3-Coder-Next,+Qwen3.5-122B-A10B,+auto" + # --- Hermes-Standardassistent (Modell + System-Prompt) --- + - "DEFAULT_AGENT_CONFIG=model=Hermes-4-14B;provider=openai;params.temperature=0.7;systemRole=Du bist Hermes, der lokale KI-Assistent dieses Homelabs. Antworte präzise, hilfsbereit und auf Deutsch, sofern nicht anders gewünscht." + # --- Zugriffsschutz im LAN (einfacher Code statt voller Auth) --- + - ACCESS_CODE=${ACCESS_CODE:?bitte in .env setzen} + - ACCESS_CODE_ENABLED=1