Docker (ghcr.io/valani9/vstack)¶
docker pull ghcr.io/valani9/vstack:latest
# MCP server over stdio (the default CMD):
docker run --rm -i ghcr.io/valani9/vstack:latest
# REST API on port 8000:
docker run --rm -p 8000:8000 -e ANTHROPIC_API_KEY="sk-ant-..." \
ghcr.io/valani9/vstack:latest \
vstack-api serve --host 0.0.0.0 --port 8000
# One-shot CLI invocation:
docker run --rm ghcr.io/valani9/vstack:latest vstack --help
Multi-arch (linux/amd64 + linux/arm64). Semver tags: :0.5.0, :0.5, :0, :latest. Built and pushed by .github/workflows/docker.yml on every v*.*.* tag.
Image contents¶
python:3.13-slimbasevalanistack[all]installed (everything: MCP / REST / Anthropic / OpenAI / Ollama / all framework adapters)- Non-root user (uid 1000)
VSTACK_HOME=/var/lib/vstackfor persistent statetinias PID 1 for clean signal handling- Default CMD:
vstack-mcp serve
Override CMD to pick a different surface:
docker run --rm ghcr.io/valani9/vstack:latest vstack-config list
docker run --rm ghcr.io/valani9/vstack:latest vstack-analytics summary
docker run --rm ghcr.io/valani9/vstack:latest vstack-upgrade
Persistent state¶
Mount a volume to /var/lib/vstack if you want baselines / learnings / telemetry to survive container restarts:
docker-compose¶
Generate a paste-ready compose fragment: