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>
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 | |