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里设置

Ubuntu搭建docker部署wordpress博客
Title:在Ubuntu上使用Docker部署WordPress博客:详细教程与Nginx Proxy Manager配置 Description:学习如何在Ubuntu服务器上使用Docker搭建WordPress博客。通过详细步骤,安装Docker、Nginx Proxy Manager(NPM)和WordPress,并在NPM管理界面进行域名绑定和证书申请,实现用自定义域名访问博客。 Tags:Ubuntu Docker WordPress, 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的文件。