Initial commit: localgenai stack
Containerized local LLM stack for the Framework Desktop / Strix Halo,
plus the OpenCode harness on the Mac side.
- pyinfra/framework/: pyinfra deploy targeting the box
- llama.cpp (Vulkan), vLLM (ROCm), Ollama (ROCm with HSA override
for gfx1151), OpenWebUI
- Beszel (host + container + AMD GPU dashboard via sysfs)
- OpenLIT (LLM fleet metrics)
- Phoenix (per-trace agent waterfall)
- OpenHands (autonomous agent in a Docker sandbox)
- opencode/: OpenCode config + Phoenix bridge plugin (OTel exporter)
- install.sh deploys to ~/.config/opencode/
- StrixHaloSetup.md / StrixHaloMemory.md / Roadmap.md / TODO.md:
documentation and planning
- testing/qwen3-coder-30b/: small evaluation harness
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
35
pyinfra/framework/compose/phoenix.yml
Normal file
35
pyinfra/framework/compose/phoenix.yml
Normal file
@@ -0,0 +1,35 @@
|
||||
# Arize Phoenix — per-trace agent waterfall / flamegraph viz.
|
||||
# https://github.com/Arize-ai/phoenix
|
||||
#
|
||||
# Picked over Langfuse for "show me one OpenCode turn as a tree":
|
||||
# - Single container vs Langfuse's six (Postgres+ClickHouse+Redis+MinIO+web+worker).
|
||||
# - First-class ingestion of Vercel AI SDK spans (which is what OpenCode
|
||||
# emits under the hood when experimental.openTelemetry=true).
|
||||
# - Best-in-class waterfall + agent-graph view for nested LLM/tool calls.
|
||||
#
|
||||
# Complements OpenLIT, doesn't replace it: OpenLIT is the fleet-metrics
|
||||
# layer (cost / tokens / latency aggregated across sessions). Phoenix is
|
||||
# the per-prompt debugger (see what one turn actually did).
|
||||
#
|
||||
# Bring-up: `docker compose up -d` — no first-run setup needed; UI prompts
|
||||
# for project name on first trace ingest. Storage is SQLite at /data.
|
||||
services:
|
||||
phoenix:
|
||||
image: arizephoenix/phoenix:latest
|
||||
container_name: phoenix
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
# UI + OTLP/HTTP both ride on 6006 in Phoenix 15.x — HTTP traces go
|
||||
# to http://framework:6006/v1/traces. (Pre-15 had a separate 4318;
|
||||
# the consolidation happened in Phoenix v15.0.)
|
||||
- "6006:6006"
|
||||
# OTLP/gRPC stays separate.
|
||||
- "4317:4317"
|
||||
environment:
|
||||
PHOENIX_WORKING_DIR: /data
|
||||
# Phoenix listens on all interfaces by default; explicit for clarity.
|
||||
PHOENIX_HOST: 0.0.0.0
|
||||
PHOENIX_PORT: "6006"
|
||||
PHOENIX_GRPC_PORT: "4317"
|
||||
volumes:
|
||||
- /srv/docker/phoenix/data:/data
|
||||
Reference in New Issue
Block a user