跳转到内容

安装 Fisherboy

Fisherboy 以单个自包含的 Docker 镜像(ghcr.io/diegoparras/fisherboy:latest)发布。同一镜像同时运行 API、worker 和可选的 Web UI;由一个 Redis 服务支撑作业队列。

  • Docker(Windows/Mac 上的 Docker Desktop,或 Linux 上的 Docker Engine)。
  • 用于队列的 Redis 服务——已包含在配套的 compose 文件中。
  • 镜像约需 1 GB 磁盘空间(它捆绑了用于浏览器级别的 Chromium)。
  • 启动无需任何外部服务:未设置 ANONIMAL_URL 时,将使用内置的正则匿名器。

最快的路径——独立运行,带 Web UI:

Terminal window
git clone https://github.com/diegoparras/fisherboy.git
cd fisherboy
cp .env.example .env # 设置 SECRET_KEY + GOD/ANGEL/HUMAN_PASSWORD
docker compose -f docker-compose.standalone.yml up -d --build
# → 打开 http://localhost:8000

docker-compose.standalone.yml 文件会拉起三个服务——API(fisherboy-api,端口 8000)、worker(fisherboy-worker)和 Redis(fisherboy-redis)——全部位于一个私有网络中。

实用的后续操作:

Terminal window
docker compose -f docker-compose.standalone.yml logs -f # 跟踪日志
docker compose -f docker-compose.standalone.yml down # 停止

不想自行构建?拉取预构建镜像(由 GitHub Actions 发布):

Terminal window
docker pull ghcr.io/diegoparras/fisherboy:latest

手动运行它,并在旁边附带一个 Redis 容器:

Terminal window
docker run -d --name fisherboy-redis redis:7-alpine
docker run -d --name fisherboy-api --env-file .env \
-e APP_MODE=standalone \
-e REDIS_URL=redis://fisherboy-redis:6379/0 \
-p 8000:8000 --link fisherboy-redis \
ghcr.io/diegoparras/fisherboy:latest
docker run -d --name fisherboy-worker --env-file .env \
-e APP_MODE=standalone \
-e REDIS_URL=redis://fisherboy-redis:6379/0 \
--link fisherboy-redis \
ghcr.io/diegoparras/fisherboy:latest python -m app.worker

API 是镜像的默认命令(uvicorn app.main:app --host 0.0.0.0 --port 8000);worker 通过 python -m app.worker 启动。

.env.example 复制为 .env,并至少设置:

APP_MODE=standalone
SECRET_KEY=<一个很长的随机字符串>
GOD_PASSWORD=<你的管理员密码>
ANGEL_PASSWORD=<可选>
HUMAN_PASSWORD=<可选>
COOKIE_SECURE=0 # 本地 http://localhost(无 HTTPS)设为 0
  1. 启动整个栈(docker compose -f docker-compose.standalone.yml up -d --build)。首次构建需要几分钟;之后的启动是瞬时的。
  2. 打开 http://localhost:8000
  3. 在登录界面输入你的 GOD_PASSWORD

Fisherboy 以两种模式之一运行,由 APP_MODE 选择。核心完全相同;模式只决定是否挂载 Web UI,以及文档转换委托到何处。

standalonesidekick
Web UI有,自带无,无头
接口UI + REST + MCPREST + MCP
用途自托管、个人位于 Escriba 之后、内部网络

对于位于 Escriba 之后的 sidekick 模式,使用 docker-compose.yml,它会加入外部的 escriba_internal 网络以连接 Anonimal 和 Escriba。

变量默认值作用
APP_MODEsidekickstandalone(挂载 Web UI)或 sidekick(无头)。
SECRET_KEY启用鉴权时必需。 为会话 Cookie 签名;在每个副本上使用相同的值。
GOD_PASSWORD / ANGEL_PASSWORD / HUMAN_PASSWORD角色密码。至少设置一个以启用登录。
COOKIE_SECURE1仅通过 HTTPS 发送会话 Cookie。本地 http 设为 0
FISHERBOY_OPEN_GOD0仅限开发:以 dios 身份开放访问且无需登录。切勿用于生产环境。
REDIS_URLredis://fisherboy-redis:6379/0队列 + envelope 存储。
ANONIMAL_URL用于完整 NER 的 Anonimal(位于 Escriba 内部)。留空则回退到内置的正则匿名器。
MAX_FETCH_TIER3升级上限(0 静态、1 TLS、2 隐身、3 浏览器)。
PROXIES以逗号/换行分隔的代理池。
MAX_JOBS_PER_MIN60每个 IP 的作业提交速率限制。
CRAWL_MAX_PAGES100每个作业的页面数硬上限。
LLM_API_BASE_URL / LLM_API_KEY / LLM_MODEL用于 output_format=json(LLM 提取)。
ALLOW_PRIVATE_TARGETS0仅限开发/测试——禁用 SSRF 防护。切勿用于生产环境。

完整的带注释列表位于仓库中的 .env.example。关于 Docker Desktop、EasyPanel 和生产部署,请参阅 docs/DEPLOY.md

阅读文档