Installation
Clone the workspace
git clone https://github.com/dlepaux/gordon-workspace.git
cd gordon-workspaceAll service repos are siblings inside the workspace directory, not submodules.
First-run bootstrap
make dev-initdev-init is idempotent. It:
- Checks required tools (Docker, Rust, Node, Python, overmind, sccache, cargo-nextest)
- Initialises a local Postgres cluster at
./data/postgres/ - Runs gordon-migrate to apply all schema migrations
- Creates the NATS JetStream stream (
gordon-bus) - Writes
.env.devwith dev-safe defaults
Run this once per machine. Re-running is safe.
Start the dev stack
make dev-upThis launches the full stack via overmind (Procfile.dev):
| Process | What it runs |
|---|---|
postgres | Host Postgres (not Docker) |
nats | Host NATS server with JetStream |
migrate | gordon-migrate one-shot — exits after applying migrations |
data | gordon-data on :8081 |
risk | gordon-risk on :8082 |
manager | gordon-manager on :8083 |
bot | gordon-bot on :8084 |
executor | gordon-executor on :8085 |
console | gordon-console (Next.js) on :3000 |
Services auto-restart until migrate completes and the least-privilege roles exist.
Tail a specific process:
make dev-logs P=data # gordon-data logs
make dev-logs P=manager # gordon-manager logsCheck process status:
make dev-statusSeed market data
make dev-seedBackfills BTC+ETH 1-year of 1m klines, higher-TF precompute, GEX, overlays, and macro data. First run takes approximately 20 minutes. The command is idempotent — re-running only fetches data newer than what is already in the database.
Verify
Open http://localhost:3000 in your browser. gordon-console should show the operator dashboard. If any service is unhealthy, check its logs:
make dev-logs P=executorStop the stack
make dev-down # stop processes, preserve ./data/
make dev-reset # stop AND wipe ./data/ (full reset — re-run dev-init after)Connect to the dev database
make dev-psql # opens psql shell\dt -- list tables
SELECT count(*) FROM market_data.spot_klines;
\qNext step
With the stack running and data seeded, you are ready to run your first backtest.