零代码部署 PDF 瑞士军刀——Stirling-PDF 容器化实战指南

“如果你有浏览器,就能拥有一整套 PDF 工厂。”

为什么会爱上 Stirling-PDF?

  • 全功能:合并、拆分、旋转、压缩、加水印、OCR、密码保护……你能想到的 PDF 操作它几乎都支持。
  • 零依赖:纯浏览器即可操作,无需 Office、Adobe 全家桶。
  • 多端可用:PC、Mac、Linux、树莓派,甚至 NAS 都能跑。
  • 开源可商用:MIT 许可证,可放心内网部署。
  • 体积瘦身:官方提供“精简版”“标准版”“完整版”三种镜像,低配机器也能流畅运行。

一句话:用 Stirling-PDF,你就拥有了一个私有、安全、免费的在线 PDF 工作站。

为什么我会推荐这样一款工具呢?

我自己其实也有很多类似的PDF编辑的需求,在网上找了很多,要么是收费的,要么广告多的要命,最近逛小红书的时候无意中发现有人在推荐这样一款工具,我觉得非常有必要跟大家分享一下

一分钟速览:官方三种镜像怎么选?

镜像 Tag体积OCR 支持额外功能适用场景
latest(完整版)≈2 GB主力服务器、桌面
ultralite(精简版)≈400 MB树莓派、NAS、低内存 VPS
fat(标准版)≈1 GB需要 OCR 但磁盘吃紧

本文示例以 完整版 为例,其他版本只需把命令里的 latest 换成对应 tag 即可,非常推荐NAS玩家使用体验

手把手 5 步部署(Docker 方式)

假设你有一台可联网的 Linux 主机(Ubuntu 22.04/Debian 12/CentOS 9 均可),已装 Docker & Docker Compose。

第 1 步:准备目录结构

mkdir -p ~/stirling-pdf/{trainingData,extraConfigs,customFiles,logs,pipeline}
cd ~/stirling-pdfCode language: Bash (bash)
  • trainingData:OCR 语言包(Tesseract 训练数据)。
  • extraConfigs:放置自定义配置文件。
  • customFiles:上传自定义字体、水印图等。
  • logs:日志持久化,方便排查问题。
  • pipeline:批处理脚本或自定义流水线。

第 2 步:一键启动(推荐方式)

方案 A:直接 docker run(最快)

docker run -d \
  --name stirling-pdf \
  -p 8080:8080 \
  -v "$PWD/trainingData:/usr/share/tessdata" \
  -v "$PWD/extraConfigs:/configs" \
  -v "$PWD/customFiles:/customFiles" \
  -v "$PWD/logs:/logs" \
  -v "$PWD/pipeline:/pipeline" \
  -e DISABLE_ADDITIONAL_FEATURES=false \
  -e LANGS=en_GB,zh_CN \
  --restart unless-stopped \
  docker.stirlingpdf.com/stirlingtools/stirling-pdf:latestCode language: Bash (bash)

方案 B:Docker Compose(更易维护)

新建 docker-compose.yml

version: '3.9'
services:
  stirling-pdf:
    image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
    container_name: stirling-pdf
    ports:
      - "8080:8080"
    volumes:
      - ./trainingData:/usr/share/tessdata
      - ./extraConfigs:/configs
      - ./customFiles:/customFiles
      - ./logs:/logs
      - ./pipeline:/pipeline
    environment:
      - DISABLE_ADDITIONAL_FEATURES=false
      - LANGS=en_GB,zh_CN
    restart: unless-stoppedCode language: YAML (yaml)

启动:

docker compose up -dCode language: Bash (bash)

第 3 步:验证服务

浏览器打开 http://<服务器IP>:8080,看到如下界面即成功:

第 4 步:可选优化

  1. 反向代理 + HTTPS
    使用 Nginx Proxy Manager 或 Caddy,把 8080 映射到 pdf.example.com,并自动申请 Let's Encrypt 证书。
  2. 语言包加速
    若 OCR 需识别中文、日文等多语言,把对应 *.traineddata 下载到 trainingData 目录即可。
    官方地址:https://github.com/tesseract-ocr/tessdata
  3. 批处理脚本示例
    pipeline 目录放一个 batch.sh
   #!/bin/bash
   # 压缩当前目录下所有 PDF
   for f in *.pdf; do
       curl -F "file=@$f" -F "compressionLevel=3" \
            http://localhost:8080/api/v1/compress > "compressed_$f"
   doneCode language: Bash (bash)

然后:

   chmod +x ~/stirling-pdf/pipeline/batch.sh
   docker exec -it stirling-pdf /pipeline/batch.shCode language: Bash (bash)
  1. 备份与迁移
    整个 ~/stirling-pdf 目录打包即可,新机器解压后 docker compose up -d 秒级恢复。

常见问题 FAQ

Q1:8080 端口被占用怎么办?
A:-p 3000:8080 改成你喜欢的端口即可,或者通过反向代理隐藏端口。

Q2:如何限制访客上传超大文件?
A:在 extraConfigs 里新建 application.yml,加入:

spring:
  servlet:
    multipart:
      max-file-size: 50MB
      max-request-size: 50MBCode language: YAML (yaml)

重启容器生效。

Q3:如何启用暗黑模式?
A:界面右上角有“月亮”图标,一键切换。

结语

Stirling-PDF 把几乎所有 PDF 需求打包进了一个 2 GB 的容器里,真正做到“装完即用,用完即走”。如果你厌倦了在 SaaS 平台反复登录、担心隐私泄露,或者想给团队/家庭搭一个私有的 PDF 工厂,今天就把 Stirling-PDF 跑起来吧!

本文所有命令已在 Ubuntu 22.04 + Docker 24.0 环境实测无误,复制即可用。如有疑问,欢迎留言交流。

相关推荐

暂无评论

发表评论

您的电子邮件地址不会被公开,必填项已用*标注。