Files
cv-cat dc078b248b catbus:一个命令操作小红书、抖音、TikTok、B 站、快手、微博、闲鱼、淘宝、京东、X
10 个平台的 web 端全部用 TypeScript 移植自 cv-cat 的开源项目,请求与上游逐字节对拍。
统一的命令语法与 JSON 输出、按 平台 × 端 × 账号 隔离的登录态、给 AI Agent 用的技能与 llms.txt。
2026-10-06 19:24:55 +08:00

71 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 用 Docker 运行
不想在本机装 Node 时,可以用仓库里的 [Dockerfile](../../Dockerfile) 构建镜像。镜像的打包方式和 npm 发布完全一样:先打出 `catbus-cli`、`@cv-cat/catbus-assets-jd`、`@cv-cat/catbus-assets-ocr` 三个包,再在 `node:24-bookworm-slim` 里全局安装,镜像里没有源码和开发依赖。
## 构建
```bash
git clone https://github.com/cv-cat/catbus.git && cd catbus
docker build -t catbus .
docker run --rm catbus doctor
```
构建时要联网:安装 npm 依赖,取回两个验证码模型(京东模型来自 GitHub 上的 cv-cat/JdApis,OCR 模型来自 PyPI 上的 ddddocr wheel,都校验 sha256)。本机已经跑过 `npm run assets:jd` / `npm run assets:ocr` 时,构建直接用已有的模型文件。镜像约 1.1 GB,其中两个模型约 115 MB。
## 登录态与数据
| 容器里的路径 | 用途 |
|---|---|
| `/data` | `CATBUS_HOME`:登录态、配置、二维码(对应本机的 `~/.catbus/`,见 [配置与数据目录](configuration.md)) |
| `/work` | 工作目录:`item download` 等命令默认写到这里 |
用一个命名卷保存登录态,下次运行还在:
```bash
docker run --rm -it -v catbus-data:/data catbus bilibili auth login # 二维码画在终端里
docker run --rm -v catbus-data:/data catbus bilibili item search 猫 --limit 20
docker run --rm -v catbus-data:/data -v "$PWD:/work" catbus xhs item download "<笔记 URL>"
```
- 扫码登录要加 `-it`,二维码才能画在终端里;PNG 也会存到卷里的 `cache/<平台>/qrcode.png`。
- 导入 cookie 时从 stdin 读取,不用把 cookie 写进命令行:
```bash
docker run --rm -i -v catbus-data:/data catbus weibo auth login --cookie - < weibo-cookie.txt
```
- 镜像默认以 root 运行,挂进来的任何目录都能写。Linux 上想让文件归自己所有,加 `--user "$(id -u):$(id -g)"`,同时把 `/data` 换成自己的目录,例如 `-v ~/.catbus:/data`(和本机的 catbus 共用登录态)。
## 代理与时区
catbus 不读取 `HTTP(S)_PROXY`(见 [配置](configuration.md#代理)),代理要写进卷里的 `config.toml`:
```bash
docker run --rm -v catbus-data:/data catbus config set proxy http://host.docker.internal:7890
```
镜像的时区默认是 `Asia/Shanghai`,可以用 `-e TZ=...` 覆盖。
## Docker Compose
仓库根目录的 [compose.yaml](../../compose.yaml) 提供两个服务,登录态放在命名卷 `catbus-data`,下载的文件落在 `./downloads`:
```bash
docker compose build
docker compose run --rm catbus bilibili auth login
docker compose run --rm catbus bilibili item search 猫 --limit 20
docker compose run --rm -T catbus weibo auth login --cookie - < weibo-cookie.txt
```
长时间监听直播弹幕,追加写到 `./downloads/live.jsonl`(每行一个 Event):
```bash
ROOM=<直播间> docker compose --profile listen up live-listen
ROOM=<直播间> PLATFORM=douyin DURATION=2h docker compose --profile listen up live-listen
```
## 开发者
- `make docker` 构建镜像,`make docker-doctor` 在镜像里跑 `catbus doctor`(见 [Makefile](../../Makefile))。
- CI 的 [docker.yml](../../.github/workflows/docker.yml) 在 x64 与 arm64 上构建镜像并跑 `version` / `doctor`,只构建,不推送到任何镜像仓库。