Feat: LobeChat-Deployment-Artefakte (Hermes-Chat-Frontend) für Proxmox

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 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-06-26 19:31:10 +02:00
parent b51f30b49a
commit 689bf3eed3
3 changed files with 80 additions and 0 deletions
+13
View File
@@ -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
+42
View File
@@ -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://<proxmox-ip>: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://<proxmox-ip>: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.
+25
View File
@@ -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://<proxmox-ip>: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