Stirling-PDF 简介

Stirling-PDF 是开源、本地部署的 PDF 工具箱,纯内网使用,文档不会上传第三方。 功能:PDF合并/拆分/压缩/旋转/加水印、OCR图文识别、PDF转Word/图片、签名、去黑边、重排页码等,一共60+PDF工具。

特点:单容器,不需要数据库,部署简单。

群晖 Container Manager 完整部署步骤(沿用你volume2/docker目录习惯)

第一步:File Station 创建文件夹

路径:/volume2/docker/stirling-pdf 在这个目录下新建3个子文件夹

  1. configs:存放程序配置
  2. tessdata:OCR语言包(中文识别需要)
  3. logs:日志目录

完整目录树

volume2/docker/stirling-pdf/
├─ configs
├─ tessdata
└─ logs

第二步:检查端口

默认端口:宿主机8080,容器内部固定8080。 先确认群晖192.168.0.51的8080端口是否被占用。

  • 如果8080被占用:宿主机端口改成 18080:8080

第三步:Container Manager → 项目 → 创建项目

项目名称:stirling-pdf 来源:编写docker-compose.yml 复制下面完整配置(已内置中文OCR、默认简体中文界面,可选关闭登录验证)

services:
  stirling-pdf:
    image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
    container_name: stirling-pdf
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - SYSTEM_DEFAULTLOCALE=zh-CN
      - TESSDATA_PREFIX=/usr/share/tessdata
      - SECURITY_ENABLELOGIN=false # false=免密码直接访问;true开启登录
    volumes:
      - /volume2/docker/stirling-pdf/configs:/configs
      - /volume2/docker/stirling-pdf/tessdata:/usr/share/tessdata
      - /volume2/docker/stirling-pdf/logs:/logs
    security_opt:
      - no-new-privileges:true

说明:SECURITY_ENABLELOGIN=false 内网使用推荐,打开网页直接进PDF工具,不用登录。需要外网访问时改成true并设置密码。

第四步:部署与启动

  1. 粘贴代码,点击下一步
  2. 资源限制保持默认,直接完成
  3. 项目会自动拉取镜像,首次镜像较大(约2.2G),等待下载完成自动启动容器

第五步:访问与中文OCR

访问地址:[http://192.168.0.51:8080](http://192.168.0.51:8080)

  • 界面自带简体中文,右上角地球图标可切换语言
  • 中文OCR:需要额外下载中文语言包 chi_sim.traineddata,放到 /volume2/docker/stirling-pdf/tessdata,重启容器,OCR就可以识别中文扫描件。

第六步(可选):加到Homepage导航卡片(纯静态,无健康检测)

  - Stirling-PDF:
      icon: pdf
      href: [http://192.168.0.51:8080](http://192.168.0.51:8080)
      description: 本地PDF工具箱

常见坑点提醒

  1. 权限报错:File Station右键stirling-pdf文件夹 → 属性 → 权限,给docker用户读写权限
  2. OCR不识别中文:缺少chi_sim.traineddata中文训练包,放入tessdata目录,必须重启容器生效
  3. 镜像拉取超时:在Container Manager的镜像源配置国内加速源

错误解析

Get "[https://registry-1.docker.io/v2/](https://registry-1.docker.io/v2/)": dial tcp 47.88.58.234:443

典型:Docker 无法连接官方镜像仓库,网络拉取超时/连接失败。 不是 compose 写错,不是目录权限问题,单纯连不上 docker.io。

你刚才镜像地址 docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest 这个域名,底层还是会回源到 docker.io,国内网络照样卡住。

方案1:更换镜像源(群晖Container Manager,优先操作)

  1. 关闭当前失败的stirling-pdf项目,删除这个项目。
  2. Container Manager → 设置 → 注册表,添加国内镜像加速器。 国内可用加速源示例:
    [https://docker.mirrors.ustc.edu.cn](https://docker.mirrors.ustc.edu.cn)
  3. 保存,重启Container Manager(群晖控制面板,重启Container Manager套件)。

群晖DSM7的Container Manager,修改注册表后必须重启套件,新的镜像源才生效。

方案2:把镜像地址替换成国内可访问的镜像(换compose里image行)

改用ghcr.io镜像(Stirling-PDF官方同时推送到ghcr,部分网络比docker.io稳定) 修改compose的image这一行:

image: ghcr.io/stirling-tools/stirling-pdf:latest

完整修改后的 compose.yml,直接复制新建项目:

services:
  stirling-pdf:
    image: ghcr.io/stirling-tools/stirling-pdf:latest
    container_name: stirling-pdf
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - SYSTEM_DEFAULTLOCALE=zh-CN
      - TESSDATA_PREFIX=/usr/share/tessdata
      - SECURITY_ENABLELOGIN=false
    volumes:
      - /volume2/docker/stirling-pdf/configs:/configs
      - /volume2/docker/stirling-pdf/tessdata:/usr/share/tessdata
      - /volume2/docker/stirling-pdf/logs:/logs
    security_opt:
      - no-new-privileges:true

备选兜底:用阿里云镜像镜像中转(ghcr.io也不行时)

image: registry.aliyuncs.com/stirlingpdf/stirling-pdf:latest

排查小细节

  1. 群晖NAS网络:确认DNS改成公共DNS(223.5.5.5),很多时候DNS污染导致连不上registry。
  2. 不要同时开多个加速器,只保留一个。
  3. 项目创建顺序:先改镜像源 → 重启Container Manager → 再新建stirling-pdf项目拉取镜像。