SPB Git forge

spb/hfmarketdata

Public

Open high-frequency market data platform — FirstRate full-history downloader, DuckDB/Parquet lake, open REST API and React docs platform (www.hfmarketdata.io)

127commits 1branches 0releases
24.7 MBsize
maindefault branch
11 days agolast push
JavaScript 53.7% Python 38.3% CSS 4.6% TypeScript 3.1%

docs: production moved to OVH BHS128 (uv Python 3.14, native PM2/Redis, FirstRate lake copied), release procedure

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Simon-Pierre Boucher committed 11 days ago (Sep 14, 2026) parent cb7b46c

1 changed file +1 −1

modified CLAUDE.md +1 −1
@@ -1,6 +1,6 @@
1 1 # hfmarketdata — conventions de travail (lues par tous les agents)
2 2
3 −Plateforme : **www.hfmarketdata.io** — API FastAPI + DuckDB sur un lac Parquet (350 Go, FirstRate Data), site React/Vite servi par l'API. Plan complet : `docs/UPGRADE-PLAN.md` (lire en premier). Prod : nœud **M3U96b** (`~/hfmarketdata`, PM2 `hfmarketdata-api` :8090, lac `~/firstratedata`, Redis local), déployé par `mld` depuis la passerelle M1M32. Dépôt de vérité : spbgit `gitsrv:srv/git/hfmarketdata.git` (branche `main`).
3 +Plateforme : **www.hfmarketdata.io** — API FastAPI + DuckDB sur un lac Parquet (350 Go, FirstRate Data), site React/Vite servi par l'API. Plan complet : `docs/UPGRADE-PLAN.md` (lire en premier). Prod (**depuis le 2026-09-14**) : serveur OVH **BHS128** (`ssh BHS128`, ubuntu@51.161.112.69, Ubuntu 24.04, 12 threads / 128 Go) — `~/hfmarketdata` (venv **Python 3.14 via uv**, versions épinglées dans `requirements-prod-freeze.txt`), lac `~/firstratedata` (359 Go Parquet + `state/hfmd.db` + `edgar/`), Redis natif, PM2 sous systemd (`pm2-ubuntu`) avec `~/apps/pm2.hfmarketdata.config.cjs` généré depuis le manifeste mld par `~/apps/.manifests/gen-pm2.py` : `hfmarketdata-api` (uvicorn :8090, 2 workers), `edgar-incremental`, crons `frd-refresh` (lun 03:00), `contracts-backfill` (04:30), `edgar-reconcile` (dim 06:00) ; `edgar-backfill` et `rowgroups` à la main (`pm2 start … --only`). Route publique : BHS64 Caddy → wg1 10.67.0.60:8090 (`mlt add www.hfmarketdata.io BHS128:8090`), ufw ouvert sur wg1 depuis 10.67.0.1. **Hors `mld`** (retirée du registre avec `--keep-dir` ; l'ancienne copie M3U96b `~/hfmarketdata` + `~/firstratedata` est conservée à froid). Release : `rsync -a --exclude venv --exclude .git --exclude 'hfmarketdata/web/node_modules' --exclude 'hfmarketdata/web/dist' --exclude mcp/node_modules . BHS128:hfmarketdata/` puis `ssh BHS128 'cd hfmarketdata && ~/.local/bin/uv pip install --python venv/bin/python -r hfmarketdata/requirements.txt && (cd hfmarketdata/web && npm ci && npm run build) && pm2 restart hfmarketdata-api hfmarketdata-edgar-incremental && pm2 save'`. Dépôt de vérité : spbgit `gitsrv:srv/git/hfmarketdata.git` (branche `main`).
4 4
5 5 ## Règles absolues
6 6 - **Aucun breaking change** : les endpoints `/v1/*` existants (main.py) gardent paths, paramètres, formes de réponse (`{"count","data"}`) et codes. Tout le neuf est additif sous `/v1/`.
7 7