Files
turnstone/QUICKSTART.md
T
Patrick Buckley 631f1b0021 feat(compose): cluster-by-default Caddy-fronted stack with bare-metal join
`docker compose up` from a clone builds one image and brings up the whole stack
— PostgreSQL, console, Caddy, channel, and 10 server nodes — sharing one
Postgres so the console discovers every node. The dashboard is reachable only
through Caddy (HTTP/2 avoids the browser's 6-connection cap on the dashboard's
SSE streams); the console's plain-HTTP port is no longer published. Postgres
binds 127.0.0.1 so a bare-metal turnstone-server can join the cluster — the
bare-metal overlay is folded in and removed. Insecure dev defaults keep it
zero-config; the bundled production stack mirrors the shape but pulls ghcr
images and requires real secrets.

Move the Caddyfile under turnstone/deploy so it ships in the wheel; update docs,
QUICKSTART, and .env.example to match.
2026-05-31 16:05:21 -07:00

3.3 KiB

Bootstrap Wizard

Interactive, AI-guided setup for Turnstone deployments. Instead of manually editing .env files and reading deployment docs, the wizard walks you through every decision conversationally and generates all the config files for you.

Quick Start

turnstone-bootstrap

That's it — no flags, no arguments. The wizard prompts for everything.

How It Works

  1. Pick a model — Choose OpenAI, Anthropic, or a local/vLLM endpoint to power the wizard. Local endpoints auto-detect available models.
  2. Answer questions — The AI walks you through deployment mode, LLM provider, database, authentication, ports, and optional features.
  3. Review generated files — Each file is previewed before writing. You confirm or reject every write.
  4. Start the stack — The wizard prints the exact docker compose command and a setup.sh script to create your first admin user, roles, and policies.

What Gets Generated

File Purpose
.env All environment variables for compose.yaml
setup.sh Post-start script: creates admin user, roles, tool policies, prompt templates via the API
docker-compose.override.yaml Only if customizations beyond env vars are needed

Requirements

  • Python 3.11+ with turnstone installed (pip install turnstone)
  • An LLM API key — for the wizard itself (OpenAI, Anthropic, or a local model). This can differ from the LLM your deployment will use.
  • Docker & Docker Compose — needed to run the stack. The wizard detects whether Docker is installed and gives platform-specific install instructions if it's missing. You can still generate config files without Docker.

Deployment Modes

  • Single-node productiondocker compose up against the bundled turnstone/deploy/compose.yaml: 1 server + console + channel + PostgreSQL, pulled from ghcr.io. Good for most deployments.
  • Local multi-node cluster — clone the repo and run docker compose up at the root for a 10-node fleet + console + Caddy + channel, built locally.

See docs/docker.md for both.

Example Session

$ turnstone-bootstrap

 Turnstone Bootstrap Wizard  v1.5.0
 ────────────────────────────────────────────────

 Which provider for this wizard?
   [1] OpenAI
   [2] Anthropic
   [3] OpenAI-compatible (local/vLLM)

 > 3

 Base URL [http://localhost:8000/v1]:
 API key (press Enter for 'none'):

 Querying http://localhost:8000/v1 for available models...
 Found model: Qwen/Qwen3-32B

 Connected to Qwen/Qwen3-32B. Handing off to AI assistant...

> (AI walks you through the rest interactively)

Tips

  • Re-run safely — running the wizard again detects your existing .env and offers to update it rather than overwriting.
  • Duplicate writes are skipped — if the LLM tries to write the same file twice with identical content, it's silently ignored.
  • Type quit to exit at any time during the conversation.
  • Ctrl+C is handled gracefully — press once to interrupt, twice to exit.

See Also