SKU 通用流程:history 差分产出 shelf_events(价/有货,unknown≠售罄), shops trust 分进 tab-caches/黑市面板;礼品卡面值假差标 noise; ensure-shops --record-outcome 回填我方履约。设计见 manhuang-procurement-radar.md。
544 lines
22 KiB
Markdown
544 lines
22 KiB
Markdown
# 蛮荒(Manhuang)完整手册
|
||
|
||
> 更新:2026-07-12(含全量核实、SMS-Activate 停运、free/MSRP/providers)
|
||
> 定位:AI / OSINT **能力供应链作战室**——观察、比价、缺口、隐渠信号。
|
||
> **不成交**:黑市 / 鬼市都只做观察;下单、代付、登录暗网商城不在本系统内。
|
||
|
||
本手册是**运维总入口**。极简索引:[manhuang-README.md](./manhuang-README.md)。面板语义见 [joy-manhuang.md](./joy-manhuang.md);专题见文末「文档地图」。
|
||
最近全量探活:[manhuang-full-audit-2026-07-12.md](./manhuang-full-audit-2026-07-12.md)。
|
||
|
||
### 快速跳转
|
||
|
||
| 要做什么 | 看哪里 |
|
||
|----------|--------|
|
||
| 日常刷新管线 | §6 · §19 |
|
||
| **采购雷达 · 货架事件/信任/RSS vs 自采** | **[procurement-radar](./manhuang-procurement-radar.md)** |
|
||
| 接码用谁 | §15(**仅 5sim**;SMS-Activate 已停) |
|
||
| shops / X 观察店 | §8 |
|
||
| channels 校验 / status 语义 | §9 |
|
||
| Tor / 鬼市 / onion | §10 · [guishi-probe](./manhuang-guishi-probe.md) |
|
||
| Quote API / free / MSRP | [channels-and-quote-api](./manhuang-channels-and-quote-api.md) |
|
||
| 自建 CD/RSSHub 别重起 | §11 · [selfhost-catalog](./manhuang-selfhost-catalog.md) |
|
||
|
||
---
|
||
|
||
## 1. 一句话架构
|
||
|
||
```
|
||
外源探针(Mac clearnet + scout Tor)
|
||
│ 控频 launchd / cron
|
||
▼
|
||
~/.cache/manhuang/
|
||
quotes/ (ai-accounts · community-prices · msrp-litellm · free-llm-lists)
|
||
relays/ (status · candidates-from-providers)
|
||
guishi/ · changedetection/ · tab-caches · pipeline-last
|
||
│
|
||
collect_manhuang() ──► joy dashboard UI(tab 驾驶舱)
|
||
│
|
||
quote-aggregator :8877(本机只读:/v1/quotes · /v1/msrp · /v1/free …)
|
||
```
|
||
|
||
| 角色 | 机器 | 做什么 |
|
||
|------|------|--------|
|
||
| **Mac / linuxjoy** | 宿主机 | 黑市比价、community(价+free+MSRP)、具名中转、CD、notify、collect、面板 |
|
||
| **scout** | 侦察 VM | Tor `:9050`、鬼市探针、onion 标题级探活、handbooks、open-feeds/Miniflux |
|
||
| **ai-team** | 10.211.55.107 | ChangeDetection `:5000` · RSSHub `:1200`(**Docker 长期服务落这里,不重复起栈**) |
|
||
| **konqi** | joy-konqi | 链危机 / 品牌威胁通知接收方 |
|
||
|
||
---
|
||
|
||
## 2. 黑市 vs 鬼市(铁律)
|
||
|
||
| | **黑市 heishi** | **鬼市 guishi** |
|
||
|--|-----------------|-----------------|
|
||
| 对象 | 清网可审计平台、SKU 比价 | 隐渠、onion、OSINT、本地 shops |
|
||
| 数据 | `blackmarket.skus` · demand · channels.json | `guishi.channels` · shops · probe · onion |
|
||
| 能做 | 探价、demand 挂钩、价差/缺口推 konqi | Tor 标题探活、品牌撞库、目录质量 |
|
||
| **不做** | 代下单 / 代付 | 登录市场、爬商品分页、自动成交 |
|
||
|
||
分层字段:
|
||
|
||
- `market_layer`:`heishi` | `guishi`(明面 marketplace **heishi kind 优先**)
|
||
- 鬼市 `quality`:`signal`(有 handle/url 可跟)| `live`(探针活)| `placeholder`(仅目录壳)
|
||
|
||
### channels.json `status` 语义(货架过滤)
|
||
|
||
| status | 含义 | 是否进 heishi 货架 |
|
||
|--------|------|-------------------|
|
||
| `active` | 主路径可探针 | 是 |
|
||
| `watch` / `watch_only` / `catalog_only` / `needs_key` / `optional` | 观察或需密钥 | 观察向(归一为 watch) |
|
||
| `down` | 核实不可达(SSL/挂) | 是但标弱;中转勿主用 |
|
||
| **`shutdown` / `dead` / `exit_scam`** | **停运/跑路** | **否(collect 跳过)** |
|
||
|
||
例:**SMS-Activate = `shutdown`**(2025-12 官方停运),禁止当「待 key 活源」。
|
||
|
||
---
|
||
|
||
## 3. 价值链与导航
|
||
|
||
```
|
||
支付(碎银) → 原料(接码/邮箱/代理) → 自产(密令注册机) → 号池(Codex/API)
|
||
→ 消费(接口探活) → 工程(Agent) → 出口(通道/Tor)
|
||
风险旁路:帮派(威胁) · 密室(暴露面)
|
||
外购旁路:黑市(明面 demand/实价) · 鬼市(隐渠/TG/发卡/onion 线索)
|
||
```
|
||
|
||
**一级导航(靠前):**
|
||
总览 → 密令 → 黑市 → 鬼市 → 碎银 → 接口 → Agent → 通道 → 帮派 → 密室 → 数据源 → 辅线…
|
||
|
||
成功标准:
|
||
|
||
1. 10 秒内看到哪一环红、next 是什么
|
||
2. Codex 全死时总览/密令/黑市同一危机叙事
|
||
3. 黑市主视野 = 需求 + 实价;锚价折叠
|
||
4. 默认进 **总览驾驶舱**
|
||
|
||
---
|
||
|
||
## 4. 配置路径
|
||
|
||
| 用途 | 仓库(可提交) | 本地 / 私密(不进 git) |
|
||
|------|----------------|------------------------|
|
||
| 黑市渠道目录 | `configs/manhuang/channels.json` | `~/.config/manhuang/channels.json` |
|
||
| 产品类型 | `configs/manhuang/product-types.json` | 覆盖同路径 |
|
||
| 鬼市扩展目录 | `configs/manhuang/guishi-channels.json` | `~/.config/manhuang/guishi-channels.json` |
|
||
| 具名中转 | `configs/manhuang/relays.json` | `~/.config/manhuang/relays.json` |
|
||
| onion 白名单 | `configs/manhuang/onion-markets.example.json` | `~/.config/manhuang/onion-markets.json` · scout `~/data/manhuang/onion-markets.json` |
|
||
| 本地店表 | `configs/manhuang/shops.example.json` | `~/.config/manhuang/shops.json` · scout `~/data/manhuang/shops.json` |
|
||
| 密钥 | `configs/manhuang/keys.env.example` | `~/.config/manhuang/keys.env`(§14 表) |
|
||
|
||
缓存(Mac):
|
||
|
||
```
|
||
~/.cache/manhuang/
|
||
quotes/ai-accounts.json # 黑市 SKU 比价
|
||
quotes/community-prices.json # proxy 价 + 5sim + free/msrp 摘要字段
|
||
quotes/msrp-litellm.json # LiteLLM 官方 token 锚
|
||
quotes/free-llm-lists.json # mnfst free + cheahjs 摘要
|
||
quotes/.demand-probe.{request,last}
|
||
relays/status.json # 具名 + providers.yaml 动态候选
|
||
relays/candidates-from-providers.json
|
||
changedetection/status.json
|
||
guishi/{status,handbooks}.json # 自 scout 拉回或 scp
|
||
tab-caches.json
|
||
pipeline-last.json # 管线健康快照(含侧线阶段)
|
||
chain-alerts.jsonl
|
||
```
|
||
|
||
scout 数据:
|
||
|
||
```
|
||
~/data/manhuang/guishi/status.json
|
||
~/data/manhuang/guishi/handbooks.json
|
||
~/data/manhuang/{shops,onion-markets,guishi-channels}.json
|
||
~/logs/manhuang-guishi.log
|
||
```
|
||
|
||
---
|
||
|
||
## 5. 两条管线(别混)
|
||
|
||
| 管线 | 目的 | 入口 | 文档 |
|
||
|------|------|------|------|
|
||
| **A 供应链比价** | 黑市价 / demand / 中转 / free·MSRP / 鬼市 ssh / 通知 | Mac `run-quote-probe.sh` + Quote API | 本手册 · channels-and-quote-api |
|
||
| **B 开源态势** | 公开 IOC/KEV、live-pulse 品牌、Miniflux、open-feeds | scout cron + Mac live-pulse | [data-sources](./manhuang-data-sources.md) · [oss-path](./manhuang-oss-path.md) |
|
||
|
||
面板 `collect_manhuang` **两边都读**。Docker 长期服务(CD/RSSHub)只在 **ai-team**。
|
||
|
||
---
|
||
|
||
## 6. 脚本清单
|
||
|
||
路径均相对 `~/Projects/joy-cli`。`scripts/manhuang/` 现网全表:
|
||
|
||
| 脚本 | 作用 |
|
||
|------|------|
|
||
| **`run-quote-probe.sh`** | **主入口**:智能 quotes + community + relays + CD + guishi + tab-caches + notify + pipeline-last |
|
||
| `probe-ai-account-quotes.py` | GGSel/FunPay/Plati…;`--demand-first` 只打 gap SKU |
|
||
| `probe-community-prices.py` | awesome 价 + OpenRouter + 5sim + free + LiteLLM MSRP |
|
||
| `probe-named-relays.py` | relays.json + providers.yaml 动态候选(reverse 跳过) |
|
||
| `probe-changedetection.py` | ai-team CD 状态 |
|
||
| `ensure-cd-watches.py` | CD 幂等建 watch(`--shops` / `--guishi` / `--all-guishi`) |
|
||
| `probe-guishi.py` | **仅 scout**:浅水 + onion 标题 |
|
||
| `build-guishi-handbooks.py` | 闲鱼等手册索引 |
|
||
| `ensure-shops.py` | shops init / validate / sync-scout / add-stub |
|
||
| `check-tor-scout.sh` | scout Tor SOCKS + circuit(写 tor_hint) |
|
||
| `validate-channels.py` | channels.json 结构校验 |
|
||
| `quote-aggregator.py` | 本机 `:8877` 只读 API |
|
||
| `build-tab-caches.py` | 新鲜度 / price_moves / demand_probe 摘要 |
|
||
| `notify-chain.sh` | 链危机 / 大价差 / 中转 down → konqi(2h) |
|
||
| `notify-guishi-brand.sh` | 品牌 threat → konqi(4h;exposure 默认不推) |
|
||
| `enrich-open-hits.py` | **管线 B**:公开 feed 对撞自有域名(scout) |
|
||
|
||
### 6.1 日常管线(首选)
|
||
|
||
```bash
|
||
bash scripts/manhuang/run-quote-probe.sh # 智能:demand 旗 / 轮换 / 轻量
|
||
bash scripts/manhuang/run-quote-probe.sh --demand-first --force
|
||
bash scripts/manhuang/run-quote-probe.sh --rotate --force
|
||
```
|
||
|
||
`run-quote-probe.sh` 串联(大致):quotes → community → relays → CD → guishi(ssh) → tab_caches → notify → **`pipeline-last.json`**。
|
||
**exit code 以 quotes 为主**;尾部失败记 log + pipeline,不伪装 quotes 失败。
|
||
|
||
---
|
||
|
||
## 7. 需求优先(demand-first)与缺口闭环
|
||
|
||
### 7.1 何时自动挂旗
|
||
|
||
`collect_manhuang` 检测:
|
||
|
||
- 链危机(`chain.crisis`)
|
||
- 需求货架无 marketplace 实价 / `sku_gap` 偏大
|
||
|
||
→ 写 `~/.cache/manhuang/quotes/.demand-probe.request`(约 90min 节流)
|
||
→ launchd 每 30min 的 `run-quote-probe.sh` 消费 → `--demand-first --force`
|
||
|
||
### 7.2 手动补 gap
|
||
|
||
```bash
|
||
cd ~/Projects/joy-cli
|
||
python3 scripts/manhuang/probe-ai-account-quotes.py --demand-first --force
|
||
# 成功后会写 quotes + .demand-probe.last
|
||
```
|
||
|
||
### 7.3 实测快照(2026-07-12)
|
||
|
||
| 项 | 值 |
|
||
|----|-----|
|
||
| 探针模式 | demand-first gap manual |
|
||
| probed_n | 22 SKU |
|
||
| market_hits | 12(FunPay / GGSel / 5sim 等) |
|
||
| 例:codex 相关 | hits 4→7;`codex_quota` $8 FunPay |
|
||
| quotes 盘 | skus≈59;demand 货架≈19 |
|
||
| 鬼市 | channels 146 · quality signal/live/placeholder ≈36/56/54 |
|
||
| 黑市 channels | 52 |
|
||
|
||
缺口不会永远为 0:官方锚价、无灰市 lot 的 SKU 会保留 gap,属预期。
|
||
|
||
---
|
||
|
||
## 8. 本地店表 shops.json
|
||
|
||
### 8.1 流程
|
||
|
||
```bash
|
||
# 1) 初始化空壳(或已有则原样)
|
||
python3 scripts/manhuang/ensure-shops.py
|
||
|
||
# 2) 加可编辑位(非 demo)
|
||
python3 scripts/manhuang/ensure-shops.py --add-stub
|
||
|
||
# 3) 编辑真实 TG handle / 发卡 URL(频道名不进 git)
|
||
$EDITOR ~/.config/manhuang/shops.json
|
||
|
||
# 4) 校验:每条 real 店须有 url 或 handle 或 rsshub_path
|
||
python3 scripts/manhuang/ensure-shops.py --validate
|
||
|
||
# 5) 同步 scout(probe 会读)
|
||
python3 scripts/manhuang/ensure-shops.py --sync-scout
|
||
|
||
# 6) CD 盯 http URL(无 URL 的 TG 不会建 watch)
|
||
python3 scripts/manhuang/ensure-cd-watches.py --shops
|
||
```
|
||
|
||
### 8.2 字段要点
|
||
|
||
- `id` 唯一;勿含 `demo`/`example`(否则 collect 当示例跳过)
|
||
- `handle` 或 `url` 或 `rsshub_path` 至少一项
|
||
- `sku_for`:挂到 demand capability(如 `codex_quota` / `claude` / `sms`)
|
||
- `status`:`watch` / `active` …
|
||
- brands 列表驱动鬼市品牌撞库
|
||
|
||
### 8.3 当前状态(2026-07-12)
|
||
|
||
- 本地 **~25** 条观察店(FunPay/GGSel/5sim/OpenRouter/awesome + **X 检索式** + 样本发卡/中转)
|
||
- validate **ok** · 已 sync scout · CD 对 http URL 已建 watch
|
||
- 私有 TG 卖号 Bot:可改 `tg-slot-ai-private` 或 `--add-stub`,**不要**把私人 handle 提交 git
|
||
- 刻意不收录:随机 WhatsApp/手机号 spam
|
||
|
||
---
|
||
|
||
## 9. channels.json 校验与目录块
|
||
|
||
```bash
|
||
python3 scripts/manhuang/validate-channels.py
|
||
python3 scripts/manhuang/validate-channels.py --json # 机读
|
||
```
|
||
|
||
校验内容:
|
||
|
||
- `marketplaces[]`:id、base/url(`catalog_only`/`manual` 允许无 base)
|
||
- `sms_apis[]` / `relay_price_feeds[]` / `named_relay_stations[]`:id
|
||
- `demand_sku_ids`:非空字符串列表
|
||
- 与 `product-types.json` 交叉提示(未知 product_types 警告)
|
||
|
||
| 块 | 用途 |
|
||
|----|------|
|
||
| `marketplaces` | 明面店 + FunPay lots |
|
||
| `sms_apis` | 接码(**5sim active**;SMS-Activate **shutdown**) |
|
||
| `relay_price_feeds` | GitHub JSON / OpenRouter / LiteLLM MSRP / providers.yaml |
|
||
| `named_relay_stations` | 具名中转(down 的勿主用) |
|
||
| `free_llm_lists` | free 档目录(mnfst 机读 + cheahjs) |
|
||
| `demand_sku_ids` | demand-first 关键 SKU |
|
||
|
||
仓库基线量级:marketplaces ~10 · sms 4 · relay feeds ~7 · free lists ~5 · demand_sku_ids 21。
|
||
|
||
---
|
||
|
||
## 10. Onion 白名单与 Tor
|
||
|
||
### 10.1 策略(policy)
|
||
|
||
```json
|
||
"checkout": false,
|
||
"scrape_listings": false,
|
||
"title_probe": true
|
||
```
|
||
|
||
只探活 + 抽 `<title>`;不登录、不下单、不爬商品分页。`example.onion` 会被跳过。
|
||
|
||
### 10.2 部署
|
||
|
||
```bash
|
||
cp configs/manhuang/onion-markets.example.json ~/.config/manhuang/onion-markets.json
|
||
# 仅保留 legal + 经 dark.fail 核对的 observe 地址
|
||
scp ~/.config/manhuang/onion-markets.json scout:data/manhuang/onion-markets.json
|
||
|
||
bash scripts/manhuang/check-tor-scout.sh
|
||
# 可选:bash scripts/manhuang/check-tor-scout.sh --restart
|
||
|
||
ssh scout 'python3 ~/scripts/manhuang/probe-guishi.py'
|
||
```
|
||
|
||
### 10.3 实测(2026-07-12)
|
||
|
||
| 检查 | 结果 |
|
||
|------|------|
|
||
| SOCKS 9050 | ok |
|
||
| check.torproject.org/api/ip | circuit_ok · IsTor |
|
||
| 合法 onion 标题 | Tor Project **alive**(`<title>Tor Project \| Anonymity Online`);DDG onion 偶发 40s 超时 |
|
||
| clearnet 浅水 | 近次 checks 51 · ok≈46 · fail≈5(论坛/paste 超时属常态) |
|
||
| 说明 | **电路活 ≠ 每个 .onion 秒开**;白名单只保 legal 基线即可 |
|
||
|
||
---
|
||
|
||
## 11. ChangeDetection
|
||
|
||
```bash
|
||
# keys.env
|
||
# CHANGEDTECTION_URL=http://10.211.55.107:5000
|
||
# CHANGEDTECTION_API_KEY=...
|
||
|
||
python3 scripts/manhuang/ensure-cd-watches.py --all-guishi
|
||
python3 scripts/manhuang/probe-changedetection.py
|
||
```
|
||
|
||
坑:Mac Python **不认 NO_PROXY 的 CIDR**;脚本对 `10.x` 强制直连。
|
||
workers 过多会拖死 Flask → 502;compose 建议 `NUMBER_OF_WORKERS=2` + healthcheck。
|
||
|
||
---
|
||
|
||
## 12. 通知
|
||
|
||
| 脚本 | 触发 | 节流 | 通道 |
|
||
|------|------|------|------|
|
||
| `notify-chain.sh` | chain crisis / Codex 无额 / 价差 Δ≥1 / 中转 down | 2h / mode | `vm-dm konqi` → 失败落 `~/office/konqi/inbox` |
|
||
| `notify-guishi-brand.sh` | brand **threat**(钓鱼/IOC) | 4h | 同上;exposure 默认不推 |
|
||
|
||
不改 NATS ACL。强制:加 `--force`。
|
||
|
||
---
|
||
|
||
## 13. 面板字段速查
|
||
|
||
| API 字段 | UI |
|
||
|----------|-----|
|
||
| `manhuang.chain` | 总览六环 |
|
||
| `manhuang.blackmarket` | 黑市 demand / skus / shelf |
|
||
| `manhuang.guishi` | 鬼市 channels / shops / probe / brand_hits |
|
||
| `manhuang.demand_probe` | 总览/黑市 demand 条 |
|
||
| `manhuang.pipeline` | **数据源** tab 管线表 + 新鲜度(含侧线阶段) |
|
||
| `manhuang.community_prices` | 社区价 overlay |
|
||
| `manhuang.relays` | 具名中转 |
|
||
| `manhuang.changedetection` | CD 摘要 |
|
||
| `manhuang.channels_catalog` | 交易平台目录卡 |
|
||
| `manhuang.tab_resources` | 各 tab 资源图谱辅线(默认折叠) |
|
||
|
||
---
|
||
|
||
## 14. launchd / cron / 密钥
|
||
|
||
### Mac launchd(仓库 `configs/launchd/`)
|
||
|
||
| Label | 周期 | 程序 | 日志 |
|
||
|-------|------|------|------|
|
||
| `com.feibisi.manhuang-quotes` | **30min** | `run-quote-probe.sh` | `~/logs/manhuang-quotes.{stdout,stderr}.log` |
|
||
| `com.feibisi.manhuang-quote-api` | KeepAlive | `quote-aggregator.py` | `~/logs/manhuang-quote-api.*.log` |
|
||
|
||
```bash
|
||
cp configs/launchd/com.feibisi.manhuang-quotes.plist ~/Library/LaunchAgents/
|
||
cp configs/launchd/com.feibisi.manhuang-quote-api.plist ~/Library/LaunchAgents/
|
||
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.feibisi.manhuang-quotes.plist
|
||
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.feibisi.manhuang-quote-api.plist
|
||
launchctl kickstart -k gui/$(id -u)/com.feibisi.manhuang-quote-api
|
||
curl -s http://127.0.0.1:8877/v1/summary | jq .
|
||
```
|
||
|
||
### scout cron(建议)
|
||
|
||
`probe-guishi` + handbooks:`25 */2 * * *`;open-feeds 见 [data-sources](./manhuang-data-sources.md)。
|
||
|
||
### keys.env
|
||
|
||
模板:`configs/manhuang/keys.env.example` → `~/.config/manhuang/keys.env`
|
||
|
||
| 变量 | 用途 | 必需? |
|
||
|------|------|--------|
|
||
| `CHANGEDTECTION_URL` / `API_KEY` | ai-team CD | CD 建议有 |
|
||
| `BRAND_DOMAINS` | 鬼市品牌撞库 | 建议 |
|
||
| `RSSHUB_BASE` | shops 拉频道 | 可选 · 用 `http://10.211.55.107:1200` |
|
||
| `ABUSECH_*` / `OTX_*` / `URLSCAN_*` | live-pulse 管线 B | 可选 |
|
||
|
||
---
|
||
|
||
## 15. 接码源核实(2026-07-12)
|
||
|
||
| 源 | 结论 |
|
||
|----|------|
|
||
| **5sim** | **主路径** · guest prices HTTP 200 · 价缓存有效(多国) |
|
||
| **SMS-Activate** | **官方停运**(约 2025-12-22)· 首页仍 200 但是告别页 *“SMS-Activate service is closed / completely ceased since December 22”* · 品牌已废 · 冒充新站=诈骗 · **禁止充值/探针** |
|
||
| SMS-Man | 首页 403/盾 · `watch_only` |
|
||
| GrizzlySMS | 首页 200 · `watch_only`(未接 key) |
|
||
|
||
社区常说「跑路」:实质是**停运 + 提现门槛争议**(曾要求 ≥$30 退款),官方自称技术转 HeroSMS;**不是**「待 API key 的活源」。目录字段:`status: shutdown`。
|
||
|
||
**collect 铁律:** `shutdown` / `dead` / `exit_scam` **不得**进入黑市 `channels`(已修 catalog 漏过滤)。
|
||
|
||
同日更大范围核实见 [manhuang-full-audit-2026-07-12.md](./manhuang-full-audit-2026-07-12.md)(68 URL · 65 ok)。
|
||
|
||
| 中转核实 | 结论 |
|
||
|----------|------|
|
||
| openrouter / yunwu / bltcy / tokenx24 | 可用 |
|
||
| **geshihua / uiuiapi** | SSL 不可达 · `status: down` · 不主用 |
|
||
|
||
---
|
||
|
||
## 16. 排障速查
|
||
|
||
| 症状 | 检查 |
|
||
|------|------|
|
||
| 黑市/鬼市 UI 空 | layer 折叠过猛?看 `counts`;重启 dashboard 重 collect |
|
||
| demand 永远无价 | 跑 `--demand-first --force`;看 FunPay/GGSel 是否被墙 |
|
||
| pipeline 老旧 | `run-quote-probe.sh --force`;看 `pipeline-last.json` stages |
|
||
| Tor down | `check-tor-scout.sh`;scout `systemctl --user status tor` |
|
||
| onion 全超时 | 电路 ok 时仍可能慢;加长 timeout 或先只保 legal 基线 |
|
||
| CD 502 | 降 workers;确认 10.x 直连 |
|
||
| shops validate 失败 | 填 handle/url;demo id 会被跳过 |
|
||
| 密钥进面板 | **禁止**;只放 keys.env / 工具配置 |
|
||
|
||
---
|
||
|
||
## 17. 文档地图
|
||
|
||
| 文档 | 内容 |
|
||
|------|------|
|
||
| **本手册** | 总入口 · 运维闭环 · 铁律 · 接码核实 |
|
||
| [manhuang-README.md](./manhuang-README.md) | 极简索引 + 一键体检 |
|
||
| [joy-manhuang.md](./joy-manhuang.md) | 面板页结构 / tab 语义 |
|
||
| [manhuang-supply-chain.md](./manhuang-supply-chain.md) | 供应链 v9 · 成功标准 · 轮询 |
|
||
| **[manhuang-procurement-radar.md](./manhuang-procurement-radar.md)** | **采购雷达 · 货架事件 · 信任 · RSS vs 自采** |
|
||
| [manhuang-channels-and-quote-api.md](./manhuang-channels-and-quote-api.md) | 渠道 + Quote API + free/MSRP |
|
||
| [manhuang-guishi-probe.md](./manhuang-guishi-probe.md) | 鬼市探针 / shops / onion / brand |
|
||
| [manhuang-full-audit-2026-07-12.md](./manhuang-full-audit-2026-07-12.md) | **全量探活快照**(68 URL) |
|
||
| [manhuang-data-sources.md](./manhuang-data-sources.md) | 数据源契约 / live-pulse |
|
||
| [manhuang-markets-catalog.md](./manhuang-markets-catalog.md) | 市场与产品类型摘要 |
|
||
| [manhuang-selfhost-catalog.md](./manhuang-selfhost-catalog.md) | 自托管选型(含 **ai-team CD/RSSHub**) |
|
||
| [manhuang-oss-path.md](./manhuang-oss-path.md) | 开源默认路线 |
|
||
| [manhuang-tabs-review-2026-07-11.md](./manhuang-tabs-review-2026-07-11.md) | **历史** tab 评审纪要(默认可不读) |
|
||
|
||
代码:
|
||
|
||
- 后端 `src/joy/dashboard/manhuang.py` · **`manhuang_shelf.py`**(事件/信任纯函数)
|
||
- 前端 `src/joy/web/js/tabs/manhuang.js`(货架事件条 · 信任榜 · 价差)
|
||
- 配置 `configs/manhuang/`(shops.example trust 字段)
|
||
- 脚本 `scripts/manhuang/`(`build-tab-caches` 写 shelf_events / shops_trust)
|
||
|
||
---
|
||
|
||
## 18. 安全与合规
|
||
|
||
1. 密钥 / cookie / token **永不进 git、永不进面板**
|
||
2. shops / onion 真实地址只在本机与 scout 私有路径
|
||
3. 观察可以大胆;**成交在系统外人工**
|
||
4. 品牌 threat 通知给人裁决,脚本不自动处置
|
||
5. 暗网只做白名单标题探活,不扩爬
|
||
6. **已停运品牌**(如 SMS-Activate)禁止充值;冒充「新官网」按诈骗处理
|
||
7. 中转 `providers.yaml` 收录 **≠ 背书**;只 health,不自动注册
|
||
|
||
---
|
||
|
||
## 19. 常用复制块
|
||
|
||
```bash
|
||
cd ~/Projects/joy-cli
|
||
|
||
# 全管线强制
|
||
bash scripts/manhuang/run-quote-probe.sh --demand-first --force
|
||
|
||
# 仅 gap 补价
|
||
python3 scripts/manhuang/probe-ai-account-quotes.py --demand-first --force
|
||
|
||
# community:proxy 价 + 5sim + free + MSRP
|
||
python3 scripts/manhuang/probe-community-prices.py
|
||
python3 scripts/manhuang/probe-named-relays.py
|
||
|
||
# channels 校验
|
||
python3 scripts/manhuang/validate-channels.py
|
||
|
||
# shops
|
||
python3 scripts/manhuang/ensure-shops.py --validate
|
||
python3 scripts/manhuang/ensure-shops.py --sync-scout
|
||
|
||
# Tor + 鬼市
|
||
bash scripts/manhuang/check-tor-scout.sh
|
||
scp scripts/manhuang/probe-guishi.py scout:~/scripts/manhuang/
|
||
ssh scout 'python3 ~/scripts/manhuang/probe-guishi.py'
|
||
|
||
# CD
|
||
python3 scripts/manhuang/ensure-cd-watches.py --all-guishi
|
||
python3 scripts/manhuang/probe-changedetection.py
|
||
|
||
# Quote API 抽查
|
||
curl -s http://127.0.0.1:8877/v1/summary | jq .
|
||
curl -s http://127.0.0.1:8877/v1/msrp | jq '.anchors|keys'
|
||
curl -s http://127.0.0.1:8877/v1/free | jq '.providers_n // .mnfst.providers_n'
|
||
|
||
# 通知(慎用 force)
|
||
bash scripts/manhuang/notify-chain.sh
|
||
bash scripts/manhuang/notify-guishi-brand.sh
|
||
```
|
||
|
||
---
|
||
|
||
## 20. 文档完备性(自检 · 2026-07-12)
|
||
|
||
| 问题 | 够吗? |
|
||
|------|--------|
|
||
| 新人如何跑通主路径? | **够** — §6 + §19 复制块 |
|
||
| 接码用谁 / SMS-Activate 坑? | **够** — §15 |
|
||
| 黑市 vs 鬼市边界? | **够** — §2 |
|
||
| Quote API / free / MSRP? | **够** — channels-and-quote-api |
|
||
| shops / X 观察店? | **够** — §8 |
|
||
| 自建别重复起栈? | **够** — §5 + selfhost-catalog |
|
||
| 全量探活快照? | **够** — full-audit |
|
||
| keys / launchd / 日志路径? | **够** — §14(本轮补全) |
|
||
| 双管线 A 比价 vs B 开源态势? | **够** — §5(本轮补全) |
|
||
| 脚本是否全覆盖? | **够** — §6 全表(含 enrich-open-hits) |
|
||
| guishi-channels 115+ 条怎么维护? | **弱** — 只说加载路径,未写「如何批量改 layer」;够用则手改 JSON |
|
||
| 面板字段 → UI 组件对照? | **弱** — 有字段表无截图/组件 id;开发靠读 manhuang.js |
|
||
| 端到端验收清单(一键)? | **中** — full-audit §11 + §19 可拼;未做成单一 `make check` |
|
||
| 英文读者 / 对外 README? | **不需要**(内网运维文档) |
|
||
|
||
**结论:** 内网运维 **够用**。剩余弱项是「目录批改」与「UI 对照」,不挡日常 probe/排障。新事实(停运源、down 中转)以 `channels.json` + full-audit 为准,手册 §15 已钉死接码。
|