Add Homepage dashboard + dual-export OpenCode traces
Homepage as the front door: single page at framework:7575 with one tile per service, live widgets where the upstream supports it (Ollama loaded models, container state via docker.sock, etc.), bookmarks for reference docs. Config files are pyinfra-managed — source of truth lives in compose/homepage/, sync by editing there and re-running ./run.sh. OpenCode plugin now dual-exports spans to Phoenix and OpenLIT in parallel. Phoenix remains the per-trace waterfall view; OpenLIT picks up the same data for fleet-level metrics. Each destination has its own batch processor so a hiccup at one doesn't block the other. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
80
pyinfra/framework/compose/homepage/services.yaml
Normal file
80
pyinfra/framework/compose/homepage/services.yaml
Normal file
@@ -0,0 +1,80 @@
|
||||
# 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 (loopback — needs SSH tunnel)
|
||||
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
|
||||
|
||||
- External:
|
||||
- SearXNG:
|
||||
icon: searxng.svg
|
||||
href: https://searxng.n0n.io
|
||||
description: Self-hosted metasearch (used by OpenWebUI + OpenCode)
|
||||
Reference in New Issue
Block a user