敏感PDF不想上传陌生网站?我把Stirling-PDF装进NAS自己处理
前言
合同、身份证、财务文件这种PDF,我越来越不愿意随手丢进一个刚从搜索结果里找到的网站。
不是因为可以证明那些网站一定会"偷存文件",而是因为我根本不知道对方后台到底怎么处理、保存多久、谁能访问。对普通资料可能无所谓,但敏感文件我更希望处理环境在自己手里。
所以这次我把Stirling-PDF装进了NAS。
合并、转换、加水印、裁剪都在自己的Stirling-PDF实例里做,不需要每次换一个在线网站。家里直接走局域网;人在外面真有需求,再通过cpolar连回自己的页面。
下面从Docker Compose开始,把2223端口、本地PDF处理和远程访问这一整条链跑通。

1.这里的"S-PDF"到底是什么?
先把一个容易误解的地方说清楚:S-PDF不是一个正式的软件名,也不是行业标准术语。原稿实际上是用它来指代"Self-hosted PDF"这一类自托管PDF工具,而本文真正部署的软件是Stirling-PDF。
因此下面统一把它写成"自托管PDF工具",并以Stirling-PDF作为实际实现。
自托管的核心优势,是文档提交到你自己的Stirling-PDF实例处理,而不是交给一个陌生的公共PDF网站。它能减少第三方平台接触文件的范围,但并不等于"绝对不会泄露":账号、服务器、公网入口和网络传输仍然需要自己保护。
自托管PDF工具的关键特征
| 特性 | 说明 |
|---|---|
| 🔒 自己控制处理位置 | 文件提交到自己的服务器/电脑,而不是公共在线PDF站点。 |
| 🛡️ 降低第三方暴露面 | 公共PDF服务商不参与处理,但仍需保护自己的服务器、账号和公网入口。 |
| ✅ 功能完整 | 支持合并、拆分、压缩、加密、OCR、格式转换等常见PDF操作。 |
| 📚 开源可审计 | 通常基于如 PDFtk、qpdf、LibreOffice、Tesseract 等成熟开源库构建,代码透明。 |
| 🌐 私有Web 界面 | 提供类似在线工具的图形界面(如网页),但仅限内网或授权用户访问。 |
对比:在线PDF工具vs. 自建S-PDF
| 项目 | 在线PDF工具(如 Smallpdf、iLovePDF) | 自建S-PDF |
|---|---|---|
| 数据流向 | 上传 → 第三方服务器 → 处理 → 下载 | 上传 → 你的服务器 → 处理 → 下载 |
| 隐私保障 | 取决于具体服务商的隐私政策与实现 | 处理环境由自己控制,可减少对公共第三方的依赖 |
| 网络要求 | 必须联网 | 可完全离线运行 |
| 成本 | 取决于具体第三方服务规则 | 软件可自托管,仍需自己的设备、电力和维护成本 |
| 安全性 | 取决于具体服务商和部署 | 可自行配置认证、网络、日志与访问控制 |
对合同、证件、财务资料等不希望提交到陌生第三方网站的文件,自托管方案更值得考虑;但涉及正式合规要求时,还需要结合组织自己的安全、审计和数据管理制度。
常见的自托管/本地PDF工具
虽然没有统一叫 "S-PDF" 的软件,但以下项目可作为自建安全PDF工具的基础:
-
PDF Arranger
轻量级桌面工具(Linux/Windows),支持合并、拆分、旋转。
-
Stirling-PDF(最接近"S-PDF"概念)
功能强大的 自托管Web PDF工具箱,支持50+ 操作,Docker一键部署,界面媲美商业在线工具。
-
PDFsam Basic
开源桌面应用,专注分割与合并。
-
基于LibreOffice + OCR的自建脚本
适合集成到企业内部系统。
本文选择Stirling-PDF,是因为它提供Web界面、Docker部署和较完整的PDF处理功能。
本文后续统一使用软件真实名称:Stirling-PDF。
自托管强调的是处理环境由自己控制,不代表文件天然"无痕"或系统天然安全。
如果经常处理敏感PDF,又不希望每次都上传到陌生网站,自托管Stirling-PDF是一条更可控的路线。
2.部署前准备
2.1 通过SSH连接极空间
- 开启【SSH 服务】
- 使用终端(Windows PowerShell / Mac Terminal)登录:
shell
ssh root@IP
没有ssh的小伙伴可以参考这篇文章:
连接成功:极空间别再吃灰了!开启SSH,秒变全能服务器! - cpolar 极点云官网

2.2 确认Docker环境
先确认Docker可用:
shell
docker -v
systemctl status -v
没有docker的小伙伴可以参考这篇文章:极空间开箱实录:从拆箱到远程访问保姆级教程,30分钟上手! - cpolar 极点云官网

3.使用Docker Compose部署Stirling-PDF
本文使用Docker Compose部署Stirling-PDF。
2026版本说明 :原稿使用
frooodle/s-pdf:latest,当前官方Docker文档已经改为docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest。当前标准镜像默认启用登录,并建议挂载/configs目录做持久化。下面的Compose已按当前官方方式更新。
可以先再次确认Docker版本:
shell
docker --version

创建单独的部署目录并进入:
shell
mkdir -p /docker/stirling-pdf
cd /docker/stirling-pdf

然后创建并编辑docker-compose.yml:
shell
vi docker-compose.yml
yaml
services:
stirling-pdf:
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
container_name: stirling-pdf
ports:
- '2223:8080'
volumes:
- ./stirling-data:/configs
- ./logs:/logs
- ./tessdata:/usr/share/tessdata
restart: unless-stopped

保存后启动容器:
shell
docker-compose up -d

部署完成后,在浏览器访问http://极空间IP:2223即可进入Stirling-PDF:

4.初始化并测试Stirling-PDF
当前标准Docker镜像默认启用登录。首次登录使用默认账号admin、密码stirling:
默认密码只用于首次初始化,登录后应立即修改。公网开放前务必确认登录认证仍然开启。

首次登录后会要求修改默认密码,建议立即设置独立强密码。

修改后重新登录。

完成首次初始化后即可进入工具页面。

原稿先测试了文件转换为PDF。


Stirling-PDF还提供多种PDF处理和编辑工具。


原稿继续测试了添加水印。

还可以裁剪PDF页面。

如果只在局域网内使用,到这里已经够了。如果还希望手机或异地电脑访问,就需要额外配置远程入口。
原稿使用cpolar把Stirling-PDF的2223端口映射到公网。
远程访问意味着服务会从局域网扩展到公网,因此重点不只是"能不能打开",还包括HTTPS、登录认证和账号安全。
本文继续使用cpolar提供公网入口:
-
把本地Stirling-PDF Web服务映射到公网地址;
-
可通过HTTPS公网入口访问,无需自行配置路由器端口转发;
-
可按需配置固定域名等功能;
-
Stirling-PDF自身登录认证仍然要保留。
bashcpolar http 2223 # 本文宿主机端口为 2223
5.安装cpolar,让Stirling-PDF支持远程访问
5.1 cpolar在这里负责什么?
本文使用cpolar把本机2223端口上的Stirling-PDF映射到公网,方便从外部浏览器访问。
5.2 安装cpolar
执行安装命令:
shell
sudo curl https://get.cpolar.sh | sh

安装完成后检查cpolar服务状态:
shell
sudo systemctl status cpolar

cpolar启动后,通过IP:9200进入Web管理界面并登录账号:
登录后即可创建和管理隧道。

6.把Stirling-PDF的2223端口映射到公网
进入"隧道管理 → 创建隧道":
- 隧道名称:可自定义,本例使用了:s-pdf,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:2223
- 域名类型:随机域名
- 地区:选择China Top

创建完成后,在"在线隧道列表"中查看公网地址,再用手机流量或其他网络环境测试访问。

如果能够正常进入Stirling-PDF登录页面,说明公网访问已经打通。
公网安全提醒:自托管能减少把文件交给公共第三方PDF网站的需要,但一旦把自己的Stirling-PDF开放到公网,安全责任也转移到了自己手里。至少要保留登录认证、使用强密码和HTTPS,不要把默认账号密码长期保留。

7.长期使用时再配置固定二级子域名
如果准备长期远程使用,可以继续配置固定二级子域名。

进入"预留",选择保留二级子域名,地区按原稿选择China Top,名称可以自定义。原稿示例使用s-pdf。

随后回到"隧道管理 → 隧道列表",找到前面创建的Stirling-PDF隧道并点击编辑。

把刚刚保留成功的二级子域名配置到当前隧道:
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区: China Top
点击更新

更新后重新打开"在线隧道列表",确认随机地址已经切换为固定二级子域名。

最后从外部设备测试固定地址。如果仍然能够进入Stirling-PDF并正常登录,就说明固定公网入口已经配置完成。

总结
改完这套以后,我最满意的不是"终于有个免费的PDF工具",而是以后碰到敏感文件时,不需要临时找一个完全不了解的网站。
Stirling-PDF跑在自己的NAS里,合并、转换、水印、裁剪都从浏览器完成。家里直接访问2223;真要在外面处理,再通过固定公网入口连回来。
但这并不代表自建以后就可以什么都不管。公网访问一开,默认密码、登录认证、HTTPS和服务器本身的安全都变成自己的责任。
所以这篇更合适的结论不是"自建才是真安全",而是:如果你更在意文件交给谁处理,自托管给了你更多控制权。