Docker 部署 Stirling PDF(Full版)
💡
Stirling PDF 是一个功能强大的本地托管网页 PDF 操作工具。它可以对 PDF 文件执行各种操作,包括拆分、合并、转换、重组、添加图片、旋转、压缩等。Stirling PDF 不会发起任何出站请求进行记录或跟踪。所有文件和 PDF 要么完全存在于客户端,要么仅在任务执行期间驻留在服务器内存中,或者仅为执行任务而暂时存放在文件中。用户下载的任何文件在下载时已从服务器上删除。
界面预览
安装步骤
一、系统初始化,更新索引
#更新索引库
sudo apt-get update
二、创建stirling_pdf容器
#在root目录下递归的创建一些文件夹,如果父目录不存在则先创建出来
mkdir -p /root/data/docker_workspace/stirling_pdf
#进入到typecho目录下
cd /root/data/docker_workspace/stirling_pdf
三、创建docker-compose.yml文件
touch docker-compose.yml
将下面代码复制到docker-compose.yml中保存即可(自定义映射的端口事先要在服务器内部和云服务商后台开放)
version: '3.3' # 定义docker-compose文件的版本
services: # 定义服务
stirling-pdf:
container_name: Stirling-PDF-Security-Fat # 容器名称
image: frooodle/s-pdf:latest-fat # 使用的Docker镜像
deploy:
resources:
limits:
memory: 4G # 限制内存使用为4G
healthcheck: # 健康检查配置
test: ["CMD-SHELL", "curl -f http://localhost:9080/api/v1/info/status | grep -q 'UP' && curl -fL http://localhost:9080/ | grep -q 'Please sign in'"] # 健康检查命令
interval: 5s # 健康检查间隔时间
timeout: 10s # 健康检查超时时间
retries: 16 # 健康检查重试次数
ports:
- 9080:8080 # 端口映射,将主机的9080端口映射到容器的8080端口
volumes:
- ./trainingData:/usr/share/tessdata:rw # 目录映射,挂载本地trainingData目录到容器内的/usr/share/tessdata目录,读写权限
- ./customFiles:/customFiles:rw # 目录映射,挂载本地customFiles目录到容器内的/customFiles目录,读写权限
- ./logs:/logs:rw # 目录映射,挂载本地logs目录到容器内的/logs目录,读写权限
- ./configs:/configs:rw # 目录映射,挂载本地configs目录到容器内的/configs目录,读写权限
environment: # 环境变量配置
DOCKER_ENABLE_SECURITY: "true" # 启用安全性
SECURITY_ENABLELOGIN: "true" # 启用登录
PUID: 1002 # 用户ID
PGID: 1002 # 组ID
UMASK: "022" # 默认文件权限掩码
SYSTEM_DEFAULTLOCALE: en-US # 系统默认区域设置
UI_APPNAME: Stirling-PDF # UI应用名称
UI_HOMEDESCRIPTION: Demo site for Stirling-PDF Latest-fat with Security # UI主页描述
UI_APPNAMENAVBAR: Stirling-PDF Latest-fat # UI导航栏应用名称
SYSTEM_MAXFILESIZE: "100" # 系统最大文件大小
METRICS_ENABLED: "true" # 启用指标
SYSTEM_GOOGLEVISIBILITY: "true" # 启用谷歌可见性
restart: on-failure:5 # 当容器因故障停止时重新启动容器,最多重启5次
#拉取项目镜像并在后台启动容器
docker-compose up -d
登录:
打开浏览器,地址栏内输入IP:9080端口形式访问
使用默认的用户名admin
和密码stirling
登录以后,系统会强制要求你变更新的密码,然后重新登陆。
域名访问
可参考下面的文章去Nginx Proxy Manager里设置
注意
如果你想使用登录功能,官方默认的yml文件中使用的镜像是没有该功能的。它缺少Stirling-PDF-with-login.jar
文件
常见问题
1、为什么我的下载超时了
NGINX默认具有超时值,因此如果你在NGINX后面运行Stirling-PDF,可能需要设置超时值,例如添加配置 proxy_read_timeout 3600;
2、为什么我的应用程序正在下载 .htm文件?
这通常是由你的NGINX配置引起的问题。NGINX的默认文件上传大小为1MB,你需要在NPM的后台控制面板中,找到Proxy Host编辑页面中的Advanced添加以下内容。
client_max_body_size SIZE;
其中"SIZE"可以是50M,例如用于50MB的文件。