- Move piper-compose.yaml / whisper-compose.yaml from repo root into
pyinfra/framework/compose/{piper,whisper}.yml; bind paths shifted to
/srv/docker/{piper,whisper}/data on the box.
- deploy.py registers both stacks and provisions the data dirs.
- Homepage gets a "Voice" group with informational tiles (Wyoming has
no web UI, so tiles show container status without click-through).
- New VoiceModels.md captures the May 2026 STT/TTS landscape, why the
current Wyoming defaults aren't SOTA, and concrete upgrade paths
(whisper-large-v3-turbo + faster-whisper-server, Kokoro, Sesame CSM,
F5-TTS for cloning).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
96 lines
2.8 KiB
YAML
96 lines
2.8 KiB
YAML
# Service tiles for the localgenai stack. Edit in place — pyinfra
|
|
# ships this once and never overwrites.
|
|
#
|
|
# Widget reference: https://gethomepage.dev/widgets/
|
|
|
|
- Inference:
|
|
- Ollama:
|
|
icon: ollama.svg
|
|
href: http://framework:11434
|
|
description: Local model server (Qwen3-Coder-30B and friends)
|
|
server: localhost-docker
|
|
container: ollama
|
|
widget:
|
|
type: ollama
|
|
url: http://framework:11434
|
|
|
|
- llama.cpp:
|
|
icon: si-llama
|
|
href: http://framework:8080
|
|
description: Vulkan-backed llama.cpp server (gfx1151)
|
|
server: localhost-docker
|
|
container: llama
|
|
# No native widget; a ping check confirms liveness.
|
|
widget:
|
|
type: customapi
|
|
url: http://framework:8080/health
|
|
refreshInterval: 30000
|
|
mappings:
|
|
- field: status
|
|
label: Status
|
|
|
|
- vLLM:
|
|
icon: mdi-server-network
|
|
href: http://framework:8000
|
|
description: Batched OpenAI-compatible serving (ROCm)
|
|
server: localhost-docker
|
|
container: vllm
|
|
|
|
- Agent UIs:
|
|
- OpenWebUI:
|
|
icon: open-webui.svg
|
|
href: http://framework:3000
|
|
description: Chat UI in front of Ollama, with SearXNG search
|
|
server: localhost-docker
|
|
container: openwebui
|
|
|
|
- OpenHands:
|
|
icon: mdi-robot
|
|
href: http://framework:3030
|
|
description: Autonomous coding agent in a Docker sandbox
|
|
server: localhost-docker
|
|
container: openhands
|
|
|
|
- Observability:
|
|
- Beszel:
|
|
icon: beszel.svg
|
|
href: http://framework:8090
|
|
description: Host + container + AMD GPU dashboard
|
|
server: localhost-docker
|
|
container: beszel
|
|
|
|
- OpenLIT:
|
|
icon: mdi-chart-line-variant
|
|
href: http://framework:3001
|
|
description: LLM fleet metrics (cost, tokens, latency)
|
|
server: localhost-docker
|
|
container: openlit
|
|
|
|
- Phoenix:
|
|
icon: arize-phoenix.svg
|
|
href: http://framework:6006
|
|
description: Per-trace agent waterfall / flamegraph
|
|
server: localhost-docker
|
|
container: phoenix
|
|
|
|
- Voice:
|
|
# Wyoming-protocol services have no web UI; tiles are informational
|
|
# (container status + port). Click-through goes nowhere meaningful.
|
|
- Whisper:
|
|
icon: mdi-microphone-message
|
|
description: Speech-to-text (Wyoming :10300)
|
|
server: localhost-docker
|
|
container: wyoming-whisper
|
|
|
|
- Piper:
|
|
icon: mdi-account-voice
|
|
description: Text-to-speech (Wyoming :10200)
|
|
server: localhost-docker
|
|
container: wyoming-piper
|
|
|
|
- External:
|
|
- SearXNG:
|
|
icon: searxng.svg
|
|
href: https://searxng.n0n.io
|
|
description: Self-hosted metasearch (used by OpenWebUI + OpenCode)
|