前言
临时合并几份合同、压缩简历或者给PDF增加水印时,在线PDF工具确实方便,但使用这类服务通常意味着需要先把文件上传到第三方提供的处理环境。对于普通资料这可能不是问题,如果涉及证件、合同、财务文件或内部文档,就值得先考虑文件到底在哪里完成处理。
Stirling PDF提供了另一种方式。它是一套可以自己部署的Web PDF工具箱,支持合并、拆分、转换、压缩、OCR、水印、裁剪等常见操作,可以运行在自己的服务器或NAS中。
本文会在极空间中通过Docker部署Stirling PDF,将Web服务映射到2223端口,再实际测试登录、文件转换、水印和PDF裁剪等功能。这里"自托管"的重点是PDF处理服务器由自己维护,而不是把文档交给第三方在线PDF处理网站。
需要注意的是,自托管并不等于零安全风险。管理员密码、Docker权限、应用版本、临时文件和NAS本身的安全仍然需要自己负责;如果后续从公网访问,文件也仍然需要通过网络上传到自己的NAS。
最后还会通过**cpolar**为2223端口创建公网入口,让运行在极空间中的Stirling PDF可以从其他网络使用。由于这里可能处理敏感文件,远程访问时应优先使用HTTPS并启用应用登录,而不能把随机或固定公网地址本身当作安全措施。

1.什么是S-PDF?
"S-PDF" 并不是一个官方或广泛标准化的技术术语,而是在强调安全(Secure)和自托管(Self-hosted)理念的上下文中,对 "安全、私有、本地化运行的PDF处理工具" 的一种简称。
在你提到的语境中------"自建S-PDF才是真·安全方案"------S-PDF中的 "S" 代表Secure(安全)或Self-hosted(自托管),其核心含义是:
一个完全运行在你自己的设备或私有服务器上的PDF工具套件,所有文件处理过程不依赖任何第三方云端服务,确保文档内容永不外泄。
S-PDF的关键特征
| 特性 | 说明 |
|---|---|
| 🔒 数据不出内网 | 文件上传、处理、下载全程在你的服务器/电脑上完成,不经过互联网传输到第三方。 |
| 🛡️ 无隐私泄露风险 | 服务商无法访问你的合同、身份证、财报等敏感文档。 |
| ✅ 功能完整 | 支持合并、拆分、压缩、加密、OCR、格式转换等常见PDF操作。 |
| 📚 开源可审计 | 通常基于如 PDFtk、qpdf、LibreOffice、Tesseract 等成熟开源库构建,代码透明。 |
| 🌐 私有Web 界面 | 提供类似在线工具的图形界面(如网页),但仅限内网或授权用户访问。 |
对比:在线PDF工具vs. 自建S-PDF
| 项目 | 在线PDF工具(如 Smallpdf、iLovePDF) | 自建S-PDF |
|---|---|---|
| 数据流向 | 上传 → 第三方服务器 → 处理 → 下载 | 上传 → 你的服务器 → 处理 → 下载 |
| 隐私保障 | 依赖服务商承诺,条款常含模糊条款 | 完全自主控制,零外部依赖 |
| 网络要求 | 必须联网 | 可完全离线运行 |
| 成本 | 免费版有水印/限速;高级功能收费 | 一次性部署,长期免费使用 |
| 安全性 | 黑盒操作,无法验证是否留存数据 | 白盒系统,可审计、可监控 |
✅ 推荐场景:对数据安全要求高、需合规处理敏感文档的企业或组织,建议部署自建S-PDF解决方案。
常见的S-PDF开源实现
虽然没有统一叫 "S-PDF" 的软件,但以下项目可作为自建安全PDF工具的基础:
-
PDF Arranger
轻量级桌面工具(Linux/Windows),支持合并、拆分、旋转。
-
Stirling-PDF(最接近"S-PDF"概念)
功能强大的 自托管Web PDF工具箱,支持50+ 操作,Docker一键部署,界面媲美商业在线工具。
-
PDFsam Basic
开源桌面应用,专注分割与合并。
-
基于LibreOffice + OCR的自建脚本
适合集成到企业内部系统。
其中Stirling-PDF因其功能全面、部署简单、界面现代,常被社区视为 "S-PDF" 的理想实现。
S-PDF = Self-hosted + Secure + PDF Toolkit
它不是某个具体软件,而是一种以数据主权为核心的 PDF 处理理念------"我的文档,我做主;处理过程,不留痕。"
如果你经常处理敏感文档,又不想放弃在线工具的便捷性,那么自建一套 S-PDF 系统,就是兼顾效率与安全的最佳选择。
2.前提条件
2.1ssh远程连接到极空间
- 开启【SSH 服务】
- 使用终端(Windows PowerShell / Mac Terminal)登录:
shell
ssh root@IP
没有ssh的小伙伴可以参考这篇文章:
连接成功:极空间别再吃灰了!开启SSH,秒变全能服务器! - cpolar 极点云官网

2.2验证docker是否开启
使用命令:
shell
docker -v
systemctl status -v
没有docker的小伙伴可以参考这篇文章:极空间开箱实录:从拆箱到远程访问保姆级教程,30分钟上手! - cpolar 极点云官网

3.部署S-PDF
通过Docker部署S-PDF:
在开始部署之前,确保你的系统已经安装了Docker。可以通过以下命令检查 Docker 是否已安装:
shell
docker --version

首先创建一下安装的目录并进入到该目录:
shell
mkdir -p /docker/S-PDF
chmod -R 777 /S-PDF

创建并编辑 docker-compose.yml文件:
shell
vi docker-compose.yml
shell
version: '3.9'
services:
s-pdf:
image: 'frooodle/s-pdf:latest'
container_name: spdf
environment:
- DOCKER_ENABLE_SECURITY=false
volumes:
- '$PWD/logs:/logs'
- '$PWD/extraConfigs:/configs'
- '$PWD/trainingData:/usr/share/tesseract-ocr/5/tessdata'
ports:
- '2223:8080'

启动容器:
shell
docker-compose up -d

部署完成后,在浏览器中输入 http://极空间IP:2223 就能看到S-PDF的界面:

4.使用S-PDF
使用默认的账户密码登录:

登录后默认修改密码:

修改后重新登录:

登录后一路默认安装:

导入自己的文件可以立刻生成pdf格式:


还有很多编辑功能:


为该pdf添加水印:

裁剪pdf:

在企业或个人场景中,S-PDF(Secure PDF) 提供了完全私有、数据不出内网的PDF处理能力------但这也带来一个现实问题:
"我的 S-PDF 部署在内网,如何在外网安全访问?"
这时候,cpolar的引入就显得尤为关键。
🌐 为什么需要cpolar?
S-PDF虽然保障了数据处理的安全性,但默认仅限局域网访问。若想从外部(如手机、出差电脑)使用该服务,传统方案需配置公网IP、端口映射、DDNS、防火墙规则等,复杂且存在暴露风险。
而 cpolar 是一款轻量级的内网穿透工具,能:
- 将本地运行的S-PDF Web服务安全映射到公网 HTTPS 地址;
- 自动加密传输(基于 TLS),无需开放路由器端口;
- 支持身份验证、访问控制、固定域名(付费版)等企业级功能;
- 部署简单,一条命令即可打通内外网。
🔧 典型结合场景
-
本地部署S-PDF
在公司服务器或家用NAS上运行S-PDF(如基于Docker的
pdf-toolkit+ Web 前端)。 -
启动cpolar隧道
bashcpolar http 8080 # 假设 S-PDF 监听在本地 8080 端口
5.安装cpolar实现随时随地开发
5.1 什么是cpolar?
cpolar是一款安全高效的内网穿透工具,无需公网IP或复杂配置,只需一条命令,即可将本地服务器、Web服务或任意端口映射到公网,让你随时随地远程访问内网应用,特别适合开发调试、远程运维和应急部署等场景。
5.2 部署cpolar
cpolar 可以将你本地电脑中的服务(如 SSH、Web、数据库)映射到公网。即使你在家里或外出时,也可以通过公网地址连接回本地运行的开发环境。
❤️以下是安装cpolar步骤:
使用一键脚本安装命令:
shell
sudo curl https://get.cpolar.sh | sh

安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)
shell
sudo systemctl status cpolar

Cpolar安装和成功启动服务后,在浏览器上输入虚拟机主机IP加9200端口即:【http://ip:9200】访问Cpolar管理界面,使用Cpolar官网注册的账号登录,登录后即可看到cpolar web 配置界面,接下来在web 界面配置即可:
打开浏览器访问本地9200端口,使用cpolar账户密码登录即可,登录后即可对隧道进行管理。

6.配置公网地址
登录cpolar web UI管理界面后,点击左侧仪表盘的隧道管理------创建隧道:
- 隧道名称:可自定义,本例使用了:s-pdf,注意不要与已有的隧道名称重复
- 协议:http
- 本地地址:2223
- 域名类型:随机域名
- 地区:选择China Top

创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了公网地址,接下来就可以在其他电脑或者移动端设备(异地)上,使用地址访问。

访问成功。

7.保留固定公网地址
使用cpolar为其配置二级子域名,该地址为固定地址,不会随机变化。

点击左侧的预留,选择保留二级子域名,地区选择china Top,然后设置一个二级子域名名称,我使用的是s-pdf,大家可以自定义。填写备注信息,点击保留。

登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理------隧道列表,找到所要配置的隧道,点击右侧的编辑。

修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区: China Top
点击更新

更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。

最后,我们使用固定的公网地址在任意设备的浏览器中访问,可以看到成功访问的页面,这样一个永久不会变化的二级子域名公网网址即设置好了。

总结
完成以上配置后,Stirling PDF已经运行在极空间的Docker环境中,并可以通过2223端口打开Web PDF工具页面。
本文实际测试了登录、文件转换、水印和PDF裁剪等基础操作。与把文件上传到第三方在线PDF处理平台不同,自托管以后,PDF处理服务运行在自己维护的NAS上,可以由自己决定应用版本、账号以及网络访问方式。
但"自托管"并不意味着文件天然不会泄露。Stirling PDF在处理过程中可能使用内存或临时文件,NAS、Docker、管理员账号和应用本身也都需要持续维护;如果启用了额外文件存储或分享功能,还应按照对应版本重新确认数据保存策略。
通过cpolar为2223端口建立公网入口后,还可以从其他网络环境使用这套PDF工具。远程上传的文件此时会通过网络传输到自己的Stirling PDF服务器,因此应优先使用HTTPS,并为管理员账号设置独立强密码,同时保持Stirling PDF和NAS环境及时更新。
如果需要长期使用同一个公网地址,可以根据实际套餐配置固定二级子域名,在账号、套餐以及对应隧道配置保持有效期间维持URL一致。固定地址解决的是链接变化问题,并不能替代应用认证、主机安全或数据备份。
从极空间Docker部署、本地PDF处理,到远程访问,本文完成了一套Stirling PDF自托管工具箱的基础实践流程。