Der Host-Socket bleibt (bewusste Entscheidung fuer den Heimbetrieb). Dafuer der wirksamste kostenlose Schutz explizit dokumentiert: OPENHANDS_BIND bleibt auf 127.0.0.1, Zugriff von anderen Rechnern per 'ssh -L 3000:127.0.0.1:3000'. Dazu der Hinweis, was echte Isolation waere (eigene VM / rootless Daemon). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
90 lines
5.0 KiB
Bash
90 lines
5.0 KiB
Bash
# ════════════════════════════════════════════════
|
|
# ARIA Compute-Node — Konfiguration
|
|
# Kopieren nach .env und anpassen (pro Worker-Node eine eigene .env)
|
|
# ════════════════════════════════════════════════
|
|
|
|
# ─── Welche Dienste startet DIESER Node? ──────────
|
|
# Komma-getrennt aus: voxtral, whisper, f5tts, llm
|
|
# Nur die aufgefuehrten Dienste starten bei `docker compose up -d`.
|
|
# nur STT-Box (Voxtral) → COMPOSE_PROFILES=voxtral
|
|
# nur STT-Box (Whisper) → COMPOSE_PROFILES=whisper
|
|
# nur TTS-Box → COMPOSE_PROFILES=f5tts
|
|
# nur LLM-Box → COMPOSE_PROFILES=llm
|
|
# Kleine Karte (wenig VRAM): Whisper + F5-TTS auf EINER GPU
|
|
# → COMPOSE_PROFILES=whisper,f5tts
|
|
# All-in-One, grosse Karte → COMPOSE_PROFILES=voxtral,f5tts,llm
|
|
# Hinweis: voxtral UND whisper zusammen NICHT sinnvoll — beide sind STT und
|
|
# wuerden dieselbe Anfrage doppelt beantworten. Pro Node genau EINEN STT waehlen:
|
|
# Voxtral-3B (~9 GB, beste Qualitaet) ODER Whisper (klein, passt neben F5-TTS).
|
|
COMPOSE_PROFILES=whisper,f5tts
|
|
|
|
# ─── Node-Name ────────────────────────────────────
|
|
# Freier Name dieses Rechners. Erscheint in Diagnostic (Flotten-Anzeige) und
|
|
# in den Logs, und bildet die Instanz-ID der Dienste (z.B. f5tts@ai-box).
|
|
NODE_NAME=ai-box
|
|
|
|
# ─── GPU-Zuordnung pro Dienst ─────────────────────
|
|
# Setzt NVIDIA_VISIBLE_DEVICES fuer den jeweiligen Container.
|
|
# Einzelne Karte → "0" oder "1"; mehrere Karten → "0,1".
|
|
# Braucht das NVIDIA Container Toolkit (registriert die `nvidia`-Runtime).
|
|
# Nur die GPUs der aktiven Profile (COMPOSE_PROFILES) sind ueberhaupt relevant.
|
|
WHISPER_GPU=0 # kleines STT → passt neben F5-TTS auf EINE Karte
|
|
F5TTS_GPU=0 # TTS ist klein → gleiche Karte wie Whisper
|
|
VOXTRAL_GPU=1 # STT-3B ~9 GB → nur auf einer groesseren Karte (z.B. 12 GB)
|
|
LLM_GPU=0 # lokales LLM (teilt sich ggf. die Karte mit F5-TTS)
|
|
|
|
# ─── RVS-Verbindung ───────────────────────────────────────
|
|
# WICHTIG: Host, Port UND Token muessen EXAKT mit dem ARIA-Stack (Bridge/
|
|
# Diagnostic) uebereinstimmen — das RVS gruppiert Clients pro Server+Token in
|
|
# einen Raum. Bei abweichendem Port/Host landet die Box in einem ANDEREN Raum
|
|
# und taucht nicht in der Compute-Flotte auf.
|
|
RVS_HOST=example.com
|
|
RVS_PORT=444
|
|
RVS_TLS=true
|
|
RVS_TLS_FALLBACK=true
|
|
RVS_TOKEN=dein_token_hier
|
|
# RVS_SNI: nur noetig, wenn die Box im SELBEN Netz wie der RVS steht und direkt
|
|
# auf dessen interne IP verbinden soll (kein NAT-Hairpin ueber den externen
|
|
# Hostnamen). Dann RVS_HOST=<interne-ip> und hier den Zertifikats-/Hostnamen, fuer
|
|
# den Caddy sein Cert hat. Zuhause / normal: leer lassen.
|
|
# RVS_HOST=10.0.0.2
|
|
# RVS_SNI=example.com
|
|
RVS_SNI=
|
|
|
|
# ─── Optional ─────────────────────────────────────
|
|
# HF_TOKEN= # nur falls ein HF-gated Modell (z.B. Voxtral) geladen wird
|
|
# WHISPER_MODEL=small # tiny|base|small|medium|large-v3 (Hot-Swap via Diagnostic)
|
|
# WHISPER_LANGUAGE=de
|
|
# LLM_MODEL=qwen3-8b # Key aus llama-swap/config.yaml
|
|
|
|
# ─── OpenAI-Endpunkt des lokalen LLM (optional) ───
|
|
# llama-swap ist OpenAI-kompatibel (/v1/chat/completions, /v1/models). Damit
|
|
# koennen Fremd-Tools direkt auf das lokale Modell: OpenHands, Continue,
|
|
# Open WebUI, Aider ... Base-URL dann: http://<box>:<LLM_OPENAI_PORT>/v1
|
|
#
|
|
# LLM_OPENAI_BIND steuert, WER drankommt:
|
|
# 127.0.0.1 nur diese Maschine (Default, sicher)
|
|
# 0.0.0.0 das ganze LAN → dann UNBEDINGT LLM_OPENAI_KEY setzen!
|
|
LLM_OPENAI_BIND=127.0.0.1
|
|
LLM_OPENAI_PORT=8081
|
|
# API-Key. Leer = Endpunkt ohne Authentifizierung (nur mit BIND=127.0.0.1 ok).
|
|
# WICHTIG: Steht hier ein Wert, hat er VORRANG — das Feld ist dann in der ARIA-
|
|
# Diagnostic schreibgeschuetzt. Leer lassen, wenn Du den Key lieber dort pro Box
|
|
# setzen willst (er wird dann auf der Box unter /models/openai_key.json abgelegt).
|
|
# Der Key wirkt, sobald ein Modell das naechste Mal geladen wird.
|
|
LLM_OPENAI_KEY=
|
|
|
|
# ─── OpenHands (optional, eigenes Profil) ─────────
|
|
# Standalone-Entwickler-Agent, der das lokale LLM nutzt. Start:
|
|
# COMPOSE_PROFILES=llm,openhands docker compose up -d
|
|
# Dann http://<box>:<OPENHANDS_PORT> aufrufen.
|
|
# ACHTUNG: OpenHands startet eigene Arbeits-Container und bekommt dafuer den
|
|
# Docker-Socket — das ist faktisch Root-Zugriff auf diese Maschine. Deshalb
|
|
# BIND auf 127.0.0.1 lassen und von aussen per SSH-Tunnel zugreifen:
|
|
# ssh -L 3000:127.0.0.1:3000 user@box -> lokal http://localhost:3000
|
|
OPENHANDS_BIND=127.0.0.1
|
|
OPENHANDS_PORT=3000
|
|
# Wie OpenHands das lokale Modell anspricht (Container-intern, daher :8080):
|
|
OPENHANDS_LLM_BASE_URL=http://llama-swap:8080/v1
|
|
OPENHANDS_LLM_MODEL=openai/qwen3-8b
|