brew install --cask stirling-pdf # macOS 桌面版(Universal)
# Windows:官网下载 .exe / .msi;Linux:.AppImage / .deb / .rpm
# Docker 自托管:
docker run -p 8080:8080 docker.stirlingpdf.com/stirlingtools/stirling-pdf
「合并两个 PDF」「把扫描件转成可搜索」「压缩到 2MB 以内好上传」——这类需求到处都是在线 PDF 工具,代价是把文件上传到别人服务器。合同、发票、证件、银行流水、体检报告这些东西一旦出门就无从追溯,而本地处理其实只需要一条 docker run。
Stirling PDF 是这套需求的开源方案:50 多项功能(合并、拆分、旋转、压缩、格式转换、加水印、页面重排、OCR、签名、涂销/redaction)全在同一套界面里,主体走 MIT 许可,Windows / macOS / Linux 都有桌面客户端,也可以起成一台服务器给全家人共用。
先决定形态:自己的电脑,还是一直开着的机器
| 形态 | 适合 | 代价 |
|---|---|---|
| 桌面版 | 只有你自己用,偶尔处理几份文件 | 高级功能要额外装依赖 |
| Docker 自托管 | 局域网多人共用、要在 NAS / 软路由上常驻、手机也能用 | 需要一台常开的机器 |
| 官方云 | 不想维护任何东西 | 文件仍然离开本地,与自建目的相悖 |
判断标准很简单:你希望文件停留在哪里。桌面版和 Docker 都是本地处理,文件不出机器;官方版云又是另一回事。
桌面版从 v3.0.1 起提供,基于 Tauri 打包,Windows 有 .exe/.msi,macOS 是 universal 的 .dmg,Linux 有 .AppImage/.deb/.rpm。它的特点是「轻,但不是全部开箱」:OCR 需要 Tesseract,Office 格式转换需要 LibreOffice,部分优化依赖 QPDF;缺这些依赖时对应功能会提示不可用,或者退化成连接自托管服务器。看到某个按钮报错,先怀疑依赖而不是软件坏了。
Docker 自建:一条命令起,但默认口令是公开的
docker run -d \
--name stirling-pdf \
-p 8080:8080 \
-v ./stirling-config:/configs \
-v ./stirling-custom:/customSettings \
docker.stirlingpdf.com/stirlingtools/stirling-pdf
起完访问 http://localhost:8080,界面按「转换 / 处理 / OCR / 安全」分组,把常用几项拖进主页自定义区,比在几十项里翻要快。
第一件事:改默认管理员密码。 现在的镜像是登录默认开启(security.enableLogin: true),新容器会自动创建一个默认管理员账号 admin / stirling。这不代表安全——它代表任何知道你地址的人都能用一组写进公开文档的口令登进来。首次登录后立刻改掉。
第二件事:确认你到底想要哪种模式。 网上大量旧教程里那种「装完直接就能用、没有登录页」的形态,现在必须显式设置 SECURITY_ENABLELOGIN=false 才能得到——也就是主动关掉鉴权和账号系统。这种 no-login 模式只适合端口不对外的场景:绑到内网网卡、由路由器拒绝外网转发,或在前面用反向代理做认证。此时任何人都能用你的实例处理文件、消耗 CPU,别把它裸放在公网。
需要远程访问时,推荐的顺序是:
- 只在内网使用,手机和家人电脑连同一个 Wi-Fi,远程时走 VPN——最省事,也没有「忘了改密码」这类事故;
- 真要放出去,就保留登录并套 HTTPS 反向代理(Caddy / Nginx / Traefik 先 terminate TLS 再转发到 8080),登录令牌走明文 HTTP 等于把凭据广播出去,代理上再加访问频率限制。
顺带两个部署细节:想持久化配置与日志就挂 -v 到 /configs、/logs、/customFiles、/pipeline(OCR 语言包在 /usr/share/tessdata),否则容器重建后自定义流程会丢;端口冲突时改成 -p 9000:8080,访问地址跟着变。
与站内其他工具配合
- 处理完的 PDF 归档:用 AList 把网盘挂载成本地目录,Stirling 的输出目录直接指向它,省掉「下载—再上传」的来回;
- 敏感件在入库前先加密:VeraCrypt 建一个加密容器,把已涂销(redaction)的合同原件放进去,涂销过的副本才用于日常发送;
- 日常翻阅与批注:SumatraPDF 轻量、启动快,负责「看」,Stirling 负责「改」,不必让一个工具包办。
许可边界:MIT 不等于全部自由
Stirling 走的是 open-core:仓库根 LICENSE 是 MIT(Copyright (c) 2025 Stirling PDF Inc.),但 app/proprietary/、engine/、frontend/editor/src/proprietary/ 这些子目录各自带独立的专有许可。也就是说个人自建使用没有问题,而企业特性(SSO、审计日志等)需要购买 Server / Enterprise 许可证。打算在公司环境部署前先确认功能清单落在哪一侧,别在评审会上才发现要付费。