Context
New contributors spend hours setting up dependencies: PostgreSQL, Redis, Soroban CLI, Node.js, Rust, Python, and more. No single-command setup exists.
Current Limitation/Problem
Setup instructions rely on manual installation via brew, nvm, rustup, etc. Inconsistent environments cause 'works on my machine' bugs.
Expected Outcome
Single-command docker compose up that starts the full stack: API server, background workers, PostgreSQL, Redis, Soroban standalone node, ML service, webhook dispatcher.
Acceptance Criteria
Technical Scope
- docker-compose.yml - root composition with all services
- docker-compose.override.yml - local development overrides (hot-reload, debug ports)
- docker/backend.Dockerfile - Node.js backend service
- docker/ml.Dockerfile - Python ML service
- docker/seed/ - SQL seed data and contract deployment scripts
- .env.example - environment variable template with defaults
- scripts/setup.sh - initial setup script (checks Docker, pulls images)
Context
New contributors spend hours setting up dependencies: PostgreSQL, Redis, Soroban CLI, Node.js, Rust, Python, and more. No single-command setup exists.
Current Limitation/Problem
Setup instructions rely on manual installation via brew, nvm, rustup, etc. Inconsistent environments cause 'works on my machine' bugs.
Expected Outcome
Single-command docker compose up that starts the full stack: API server, background workers, PostgreSQL, Redis, Soroban standalone node, ML service, webhook dispatcher.
Acceptance Criteria
Technical Scope