Getting Started¶
Prerequisites¶
- Docker & Docker Compose — container runtime
- Python 3.11+ — runtime for engine and dashboard
uv— fast Python package managerjust— command runner
Install on macOS¶
Install on Linux¶
# Install just
bash scripts/install-just.sh
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
Environment Setup¶
Copy the example environment file and fill in your credentials:
Key variables:
| Variable | Description |
|---|---|
DATABASE_URL |
PostgreSQL connection string |
BINANCE_API_KEY |
Binance API key (required for live trading) |
BINANCE_API_SECRET |
Binance API secret |
ENVIRONMENT |
dev or prod — controls storage backend |
GRAFANA_ROOT_URL |
External Grafana URL (default: http://localhost:3000) |
Local Development¶
1. Start Dev Databases¶
This starts PostgreSQL and Redis via docker-compose.dev.yml, creates .venv, and installs all Python dependencies.
2. Seed Initial Data¶
Creates the default Tenant, Team, User, Assets, and Accounts. Idempotent — safe to run multiple times.
3. Run Database Migrations¶
4. Run the Dashboard API¶
FastAPI runs at http://localhost:8000. Swagger UI at http://localhost:8000/docs.
5. Run the Trading Engine¶
Starts the NautilusTrader node with 5 strategies and DatabaseActor. Requires .env with exchange credentials.
Observability Stack¶
Open Grafana at http://localhost:3000 (credentials: admin / admin)
→ Dashboards → NautilusTrader Latency (Mimir)