Phoenix
LLM tracing, evals, and a prompt playground in one container - the lightweight start to LLM observability.
One-click deploy, from $13/mo on a Miget plan.
Not every team needs a six-service observability platform on day one. Phoenix puts LLM tracing, evaluations, datasets, and a prompt playground in a single container with SQLite on a volume - up in seconds, OpenTelemetry-native, with auto-instrumentation for LangChain, LlamaIndex, and raw OpenAI clients.
In this catalogue it is the deliberate counterpart to langfuse: start here when you want traces this afternoon; graduate to the full stack when volume and team workflows demand it. Both speak OTel, so your instrumentation survives the move.
Auth is on, telemetry is off, and the secret is one variable. Arize’s hosted product (AX) starts at $50/month past the free tier - this is $13 with your data on your volume.
Upstream project: Arize Phoenix
#what you get
- OTel-native tracing: spans, latencies, token counts, costs
- Evals: LLM-as-judge and custom evaluators over real traces
- Datasets and experiments; prompt playground built in
- Auto-instrumentation for the major frameworks
- One container, SQLite on a volume; Postgres path when needed
- Auth enabled, telemetry disabled in this template
#topology
| Service | Role | Public |
|---|---|---|
| phoenix | UI + OTLP collectors (:5000 HTTP, :4317 gRPC internal) | yes (auth) |
#miget sizing
// this stack needs
2 GiB RAM · 10 GB disk · 1 service
Comfortable for team-scale trace volume on SQLite; heavy retention moves to PHOENIX_POSTGRES_* settings. License is Elastic 2.0 - fine to self-host, restricted from being resold as a service.
Hobby - recommended fit
$13/mo
1 vCPU · 2 GiB · 50 GiB disk
Headroom for your own apps: 2 GiB at $19/mo
Professional - production
$22/mo
1 vCPU · 2 GiB · 10 GiB disk
Dedicated resources, production SLOs - plan details
One Miget plan is a fixed pool of compute - the whole stack (managed databases included) deploys inside it, and anything left over runs your other apps. No per-service or per-seat math.
#vs. the managed service
What the hosted equivalents charge, against the flat Miget plan this stack fits on. Prices as of June 2026, sources linked.
#vs. other PaaS
Estimated monthly cost of running this exact stack (2 GiB RAM, 10 GB disk, 1 container) elsewhere, from published June 2026 rates.
| Platform | Est. monthly | Notes |
|---|---|---|
| Miget ★ | $13 flat | compose stacks first-class: one deploy, dedicated vCPU, managed Postgres/Valkey, volumes and TLS all included in the plan |
| Heroku | ~$100 | no volumes; nothing between 1 GB ($50) and 2.5 GB ($250) dynos - 2 GB containers cost far more than shown |
| DO App Platform | ~$29 | no persistent volumes - stateful containers need managed DBs/Spaces (base $5 Spaces included here) |
| Render | ~$28 | per-service instances (0.5 GB $7, 2 GB $25) - every container is its own paid service |
| Railway | ~$22 | usage-based ($10/GB RAM-mo); vCPU billed separately at $20/vCPU-mo on top |
| Fly.io | ~$13 | cheapest sticker price - but burstable shared CPUs (1/16 core; dedicated vCPUs cost ~2-3×), no compose deploys (one app per container, manual wiring), managed DBs billed extra |
Estimates assume RAM fully allocated at published on-demand rates - and sticker price isn't the whole comparison: the cheaper rows buy burstable shared CPUs, per-service wiring instead of a compose deploy, and managed databases billed separately. Heroku and DO App Platform have no persistent volumes at all - stateful stacks like this one need workarounds there.
#deploy it
On Miget
- Create a Compose Stack in app.miget.com pointing at the templates repository
- Set the stack path to
phoenix -
Set the required variable:
PHOENIX_SECRET, 32+ chars; first login admin@localhost/admin forces a reset
- Deploy. Miget layers
compose.miget.yaml(RAM, privacy, volumes, managed services) automatically
Locally first?
Every template is portable, vanilla Docker Compose - the Miget overrides are ignored locally:
git clone https://github.com/deployable-sh/stacks
cd miget-compose-templates/phoenix
docker compose up -d Same files, same behavior. The template README covers connection strings and scaling notes.
#faq
Phoenix or Langfuse - this catalogue has both?
Deliberately: Phoenix is the one-container start (tracing + evals today, minimal ops), Langfuse the full platform (workers, ClickHouse-scale ingestion, prompt management workflows). Both ingest OpenTelemetry, so starting with Phoenix costs you nothing if you graduate.
How do traces get in?
OTLP/HTTP to http://phoenix:5000/v1/traces or gRPC to phoenix:4317 from apps in the project - or use Phoenix’s SDKs, which auto-instrument LangChain, LlamaIndex, and OpenAI-compatible clients (including calls through the litellm template) in a couple of lines.
What does the ELv2 license mean for me?
Self-hosting Phoenix for your own products and teams is unrestricted. The Elastic License only forbids offering Phoenix itself as a managed service to third parties - the standard source-available trade, flagged here so nothing surprises you.
Ship Phoenix today
One compose stack, 2 GiB of RAM, from $13/month flat, and it runs on your laptop with the same files.