Das Profil existierte bereits in der compose-Datei, tauchte aber nicht in der Profil-Liste der .env.example auf — man konnte also nicht sehen, dass es waehlbar (und per Default AUS) ist. Jetzt dort gelistet, mit dem Hinweis, dass ohne Eintrag gar kein Container angelegt wird, plus Warnung, dass Profile compose v2 brauchen (das alte docker-compose 1.x behandelt sie unzuverlaessig). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
96 lines
5.5 KiB
Bash
96 lines
5.5 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, openhands
|
|
# 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
|
|
# LLM + OpenHands-Oberflaeche → COMPOSE_PROFILES=llm,openhands
|
|
# 'openhands' ist REIN OPTIONAL (Standalone-Entwickler-Agent, s.u.). Wer es nicht
|
|
# auffuehrt, bei dem wird der Container gar nicht erst angelegt — das Image wird
|
|
# nicht einmal geladen. Fuer den normalen ARIA-Betrieb also einfach weglassen.
|
|
# ACHTUNG: Profile brauchen compose v2 (`docker compose`, mit Leerzeichen). Das
|
|
# alte `docker-compose` 1.x behandelt sie unzuverlaessig.
|
|
# 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
|