{
  "markdown": "# 真测 Realcast\n\n合规版积分预测社区（类 Manifold × Good Judgment Open × Kalshi 信息呈现）。\nFastAPI + SQLite，积分**只送不卖 / 不可流通 / 不可回兑 / 彻底去加密**，合规优先。\n\n## 合规红线（贯穿全系统，不可破）\n1. 积分只送不卖（禁人民币买积分）\n2. 积分不可用户间流通\n3. 积分不可回兑现金（商城单向换实物/虚拟权益）\n4. 彻底去加密货币\n5. 结算用「平台奖励池」替代「赢家通吃输家筹码」，规避赌博三要素\n6. 台港澳属中国，不得当外国政治；国外政治仅大选季引流且需人工复核\n7. 数据出售必须匿名化（PIPL）\n8. 人工兜底（广告审核 / 敏感选题 / 群体投诉 / Oracle 冲突）\n\n## 部署\n见 `deploy/`：`Dockerfile` / `docker-compose.yml` / `nginx.conf` / `.env.example` /\n`realcast.service`(systemd) / `backup.sh`(热备) / `healthcheck.sh` / `部署运维手册.md`。\n\n```bash\ncd deploy && cp .env.example .env   # 填 ADMIN_TOKEN / CORS_ORIGINS\ndocker compose up -d --build\n```\n\n### Railway（海外部署，绕过 ICP 备案）\n\nRailway 提供持久化卷，SQLite 可直接用，无需改 Postgres。配置文件已就绪：\n`railway.json` + `deploy/Dockerfile.railway`（构建上下文为**仓库根目录**，与\n`deploy/Dockerfile` 不同，别混用）。\n\n控制台操作步骤：\n1. New Project → Deploy from GitHub Repo，选本仓库\n2. Settings → Volumes → **Add Volume**，挂载路径填 `/data`\n   （不挂卷 = 容器每次重建数据归零；库目录不存在时应用会**拒绝启动**并打印排查提示）\n3. Variables 里设置：\n\n   | 变量 | 值 | 说明 |\n   |---|---|---|\n   | `ADMIN_TOKEN` | 长随机串（≥32 位） | 运营后台/审核/结算必填 |\n   | `CORS_ORIGINS` | 你的 Railway 域名 | 不要留 `*` |\n   | `DB_PATH` | `/data/platform.db` | 镜像已默认，与卷挂载点对应 |\n   | `APP_TZ` | `8`（国内）/ `0`（UTC） | 决定「今天是哪一天」的边界 |\n   | `UVICORN_WORKERS` | `1` | **不可 >1**，原因见下 |\n   | `SEED_ON_BOOT` | `0` | 演示环境可设 `1` 自动播种（幂等） |\n   | `REDIS_URL` | 可选 | 配了才能安全扩容到多 worker |\n\n4. 部署后访问 `https://<你的域名>/api/health`，确认 `status=ok`\n\n**为什么 `UVICORN_WORKERS` 必须是 1**：未配 `REDIS_URL` 时实时广播走进程内\n`MemoryBackplane`（`app/core/backplane.py`），一个 worker 就是一个独立广播域。\nworker > 1 时，A 进程的市场状态变更推不到连在 B 进程上的客户端，不同用户看到的\n概率会不一致。要扩容必须先配 `REDIS_URL` 切到 `RedisBackplane`，并建议同时迁 Postgres。\n\n**为什么 `overlapSeconds = 0`**：Railway 默认在新旧容器间做短暂重叠实现零停机，\n但重叠窗口内两个进程会同时写同一个 SQLite 文件，轻则锁竞争、重则损坏数据。\n设为 0 = 先停旧再起新，代价是每次部署几秒中断。\n\n## 质量门禁\n```bash\ncd app && python tests/smoke.py --fresh   # 期望 99/99 全绿\ncd app && python tests/uat_customer.py    # 期望 90/90 全绿\n```\n\n> 提示：本机若设了 `HTTP_PROXY`，测试脚本访问 `127.0.0.1` 会被代理拦截（表现为 502），\n> 运行时请加 `env -u HTTP_PROXY -u HTTPS_PROXY -u http_proxy -u https_proxy` 清除。\n\n## 安全边界（CSP nonce）\n`script-src`（v0.7.1 起）与 `style-src`（v0.7.5 起）均已去掉 `'unsafe-inline'`，\n改为每请求生成的一次性 nonce。nonce 只能由后端在渲染 HTML 时注入，因此：\n- SPA 首页**必须**由 FastAPI 渲染下发（`_render_index`），不能由 nginx 等静态托管；\n- CSP 头**只能**由应用层下发，nginx 不得重复下发（见 `deploy/nginx.conf` 文件头说明）。\n\n## 上线硬性前提（未满足不得公开运营）\n- 服务器 ICP 备案（腾讯云）\n- 律所合规意见书\n",
  "bytes": 2349,
  "sha": "8f1edca4269e0f92c06d93b510ac744a4485abef48bb989e145cdfc9bfa4d8cf",
  "repo_slug": "lm203688/atex",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_lm203688_atex_ai_gateway_e0395ed3/readme"
}