Quickstart¶
Two paths: local with Docker (recommended for development) or GitHub-free-tier (for the public demo).
Local with Docker¶
Prerequisites: Docker, Docker Compose, Python 3.12+, uv (recommended) or pip.
git clone https://github.com/neeelkhadwal/market-view.git
cd market-view
# 1. Bring up Neo4j + Postgres (TimescaleDB + pgvector) + MinIO
docker compose up -d
docker compose ps # all services should be healthy
# 2. Configure
cp .env.example .env
# edit .env if you need to override defaults
# 3. Install Python deps
uv sync # or: pip install -e ".[dev]"
# 4. Apply schema constraints to the empty Neo4j
python -m kg.bootstrap
# 5. Load the static seed (sectors, regimes, indicators, S&P 100, sector maps)
market-view seed validate # parse + cross-ref check, no DB needed
market-view seed apply # MERGE everything into Neo4j (idempotent)
# 6. Verify
pytest -m "not integration"
# 7. Start the API
uvicorn api.main:app --reload
# → http://localhost:8000/health
# → http://localhost:7474 Neo4j browser (neo4j / changeme-local-only)
# → http://localhost:9001 MinIO console (minioadmin / minioadmin)
Hosted free tier¶
The whole project is designed to deploy on free-tier services reachable from GitHub. See the Architecture page for the full topology. In summary:
| Component | Service | Free tier |
|---|---|---|
| Source, CI, cron, container registry, releases | GitHub | Unlimited for public repos |
| Static UI + docs | GitHub Pages | 1 GB site, 100 GB/mo bandwidth |
| Property graph | Neo4j AuraDB Free | 200k nodes / 400k rels |
| Postgres + pgvector + audit | Supabase Free | 500 MB DB |
| Object storage | Cloudflare R2 Free | 10 GB |
| Backend container | Hugging Face Spaces | 16 GB RAM, sleeps after 48 h |
| LLM | Bring-your-own (Anthropic / OpenRouter / Ollama) | Maintainer pays $0 |
Deployment workflow files will land in .github/workflows/ in Phase 4. For now Phase 0 only deploys the docs site to Pages.