本地私有化部署PDF处理神器Stirling PDF并实现无公网IP远程在线访问

文章目录

    • 前言
    • 1. 安装Docker
    • 2. 本地安装部署StirlingPDF
    • 3. Stirling-PDF功能介绍
    • 4. 安装cpolar内网穿透
    • 5. 固定Stirling-PDF公网地址

前言

本篇文章我们将在Linux上使用Docker在本地部署一个开源的PDF工具——Stirling PDF,并且结合cpolar的内网穿透实现公网随时随地访问。

Stirling PDF一个强大的本地托管的基于Web的PDF操作工具,使用Docker,允许您对PDF文件执行各种操作,如分割、合并、转换、重组、添加图片、旋转、压缩等。这个本地托管的Web应用程序最初是一个100%由ChatGPT制作的应用程序,现在已经发展到包含了一系列的功能,以满足您所有的PDF需求。

1. 安装Docker

本文演示环境:CentOS7,Xshell7远程ssh

没有安装Docker的小伙伴需安装Docker,已有Docker可跳过以下步骤。

如没有安装Docker,需先安装Docker:

安装软件包(提供实用程序)并设置存储库

$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装Docker引擎

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

启动Docker

sudo systemctl start docker

通过运行映像来验证 Docker 引擎安装是否成功

sudo docker run hello-world

2. 本地安装部署StirlingPDF

检查Docker服务是否正常运行

systemctl status docker

检查Docker版本

docker -v

检查Docker compose版本

docker compose version

在docker hub下载Stirling-PDF镜像

docker pull frooodle/s-pdf:latest

image-20240312222816334

使用docker-cli快速创建Stirling-PDF容器

image-20240312222947052

检查Stirling-PDF容器状态状态,确保Stirling-PDF容器正常启动

docker ps

image-20240312223151827

检查Stirling-PDF容器日志,确保Stirling-PDF服务正常运行

docker logs stirling-pdf

image-20240312223535039

PS:如果拉取不到镜像,可以在终端执行 nano /etc/docker/daemon.json

输入:

{
“registry-mirrors”: [
“https://do.nark.eu.org”,
“https://dc.j8.work”,
“https://docker.m.daocloud.io”,
“https://dockerproxy.com”,
“https://docker.mirrors.ustc.edu.cn”,
“https://docker.nju.edu.cn”
]
}

保存退出

然后执行:systemctl restart docker

本地访问地址:192.168.149.143:8380,将IP替换为自己服务器IP地址

image-20240312223813221

语言切换:点击“地球”形状小图标,点击简体中文即可

image-20240312224347941

image-20240312224451561

3. Stirling-PDF功能介绍

Stirling-PDF还有很多功能,比如:合并/拆分/旋转/移动PDF及其页面的完全交互式GUI、将多个 PDF 合并到一个生成的文件中、将 PDF 拆分为多个文件,并按指定的页码或将所有页面提取为单个文件、将PDF转换为Word/Powerpoint/Others等,接下来举两个常用功能。

将word文档转换为PDF文档

点击菜单栏中的转换模块,选择将“将文件转换为PDF文件”选项。

image-20240312224939935

image-20240312225137499

添加水印功能

安全——添加水印,填写水印内容,确认即可

image-20240312225352581

我们就成功在本地搭建了Stirling-PDF,但如果想实现出门在外,或者直接把这个功能分享给身边人,省去本地部署的步骤,并且也能随时随地使用Stirling-PDF进行异地工作就需要借助cpolar内网穿透工具来实现公网访问了!接下来介绍一下如何安装cpolar内网穿透并实现Stirling-PDF的公网访问!

4. 安装cpolar内网穿透

下面是安装cpolar步骤:

cpolar官网地址: https://www.cpolar.com

  • 使用一键脚本安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务
sudo systemctl enable cpolar
  • 启动cpolar服务
sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://服务器的局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可。

接下来配置一下Stirling-PDF的公网地址,

登录后,点击左侧仪表盘的隧道管理——创建隧道,

创建一个Stirling-PDF的公网http地址隧道

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
  • 协议:选择http
  • 本地地址:8380(本地访问的地址)
  • 域名类型:免费选择随机域名
  • 地区:选择China Top

image-20240312231347241

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https

image-20240312231502581

使用上面的Cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到Striling-PDF界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可到公网进行远程访问了!

image-20240312231654447

小结

如果我们需要长期异地远程访问Stirling-PDF,由于刚才创建的是随机的地址,24小时会发生变化。另外它的网址是由随机字符生成,不容易记忆。如果想把域名变成固定的二级子域名,并且不想每次都重新创建隧道来访问Stirling-PDF,我们可以选择创建一个固定的http地址来解决这个问题。

5. 固定Stirling-PDF公网地址

我们接下来为其配置固定的HTTP端口地址,该地址不会变化,方便分享给别人长期查看你的博客,而无需每天重复修改服务器地址。

配置固定http端口地址需要将cpolar升级到专业版套餐或以上。

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

image-20240312231950575

保留成功后复制保留成功的二级子域名的名称

image-20240312232024660

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

image-20240312232115628

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)

image-20240312232230342

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

image-20240312232337457

最后,我们使用固定的公网https地址访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,可以随时随地进行异地访问Stirling-PDF!

image-20240312232450992

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/404065.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过共享目录上传后门

本文来自无问社区,更多实战内容可前往查看http://www.wwlib.cn/index.php/artread/artid/13337.html 操作步骤 枚举目标主机开启的共享服务信息:10.0.0.6 smbclient -L //10.0.0.6 -U spotWARNING: The "syslog" option is deprecated Ente…

【数据结构】关于Java对象比较,以及优先级队列的大小堆创建你了解多少???

前言: 🌟🌟Hello家人们,这期讲解对象的比较,以及优先级队列堆,希望你能帮到屏幕前的你。 🌈上期博客在这里:http://t.csdnimg.cn/MSex7 🌈感兴趣的小伙伴看一看小编主页&…

LeetCode --- 410周赛

题目列表 3248. 矩阵中的蛇 3249. 统计好节点的数目 3250. 单调数组对的数目 I 3251. 单调数组对的数目 II 一、矩阵中的蛇 只要按照题目要求模拟即可&#xff0c;代码如下 class Solution { public:int finalPositionOfSnake(int n, vector<string>& commands…

9 算术、关系、逻辑、赋值、位操作、三元运算符及其优先级

目录​​​​​​​ 1 运算符基础 1.1 什么是运算符 1.2 什么是表达式 1.3 左操作数和右操作数 1.4 运算符分类 1.4.1 按照操作数个数分类 1.4.2 按照功能分类 1.5 如何掌握运算符 2 算术运算符 2.1 正号和负号 2.2 加、减、乘、除 2.3 取模&#xff08;取余&#…

Git的使用-初级

Git 主要可以使用的远程仓库有 Github &#xff0c;Gitee 如果在国内建议使用 Gitee 比较快 从远程仓库下载工程 在安装好了 Git 后&#xff0c;我们右键单击一个本地的文件夹作为下载的目的地&#xff0c;选择 Git Bash Here 便可以通过 Linux 命令行的形式操作 Git Linux…

Redis的基本概念和使用

目录 一、Redis简介 1、NOSQL 2、NOSQL和关系型数据库比较 3、主流的NOSQL产品 4、什么是Redis 5、启动Redis 二、Redis基本操作 1、大概操作 三、 Redis 数据类型&#xff08;5种常用&#xff09; 1、redis 数据存储格式 2、String 3、hash 4、list 5、Set 6、…

【Linux入门】Linux常见指令

目录 前言 一、Linux基本指令 1.ls指令 2.pwd命令 3.cd 指令 4.touch指令 5.mkdir指令 6.rmdir指令 && rm 指令 7.man指令 8.cp指令 9.mv指令 10.cat 11.date 12.top 13.shutdown-关机 14.重要的几个热键 二、Linux扩展指令 总结 前言 Linux指令是在…

自学编程从哪个语言入手比较好?

自学编程时选择哪个语言作为起点&#xff0c;仍然取决于你的个人兴趣、学习目标和职业规划。希望以下建议可以帮到你。 Python&#xff1a; 如果你对数据分析、机器学习、人工智能、Web 开发或自动化脚本编写等领域感兴趣&#xff0c;Python 是一个非常好的起点。它的语法简洁…

Charles 抓包工具的使用

Charles 是一个网络抓包工具&#xff0c;我们可以用它抓取 APP 运行过程中产生的所有请求内容和响应内容&#xff0c;这和在浏览器开发者工具的 Network 面板中看到网页产生的内容是一样的道理 Charles , Fiddler 等都是非常强大的 HTTP 抓包软件&#xff0c;功能基本类似&…

网站配置了https证书,但浏览器访问时却访问了http

是由于缺少强制将 HTTP 请求重定向到 HTTPS 的规则 # HTTP 到 HTTPS 重定向配置 server {listen 80;server_name www.xlqd.site xlqd.site;return 301 https://$host$request_uri; } # 那么你原来的server块就要删除 listen 80;

Linux系统之部署轻量级Markdown文本编辑器

Linux系统之部署轻量级Markdown文本编辑器 一、项目介绍1.1 项目简介1.2 使用方法 二、本次实践介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查系统版本3.2 检查系统内核版本3.3 检查软件源 四、安装Apache24.1 安装Apache2软件4.2 启动apache2服务4.3 查看ap…

【Nginx】Nginx 安装(平滑升级和回滚)

一、 Nginx 概述 Nginx 介绍 Nginx &#xff1a; engine X &#xff0c; 2002 年开发&#xff0c;分为社区版和商业版 (nginx plus ) 2019 年 3 月 11 日 F5 Networks 6.7 亿美元的价格收购 Nginx 是免费的、开源的、高性能的 HTTP 和反向代理服务器、邮件代理服务器、以…

【word】修改图名/表名/公式编号后快速更新交叉引用的内容;交叉引用的字体不跟随正文如何解决

本文解决两个问题&#xff0c;不是什么特别正规的方法&#xff0c;主打一个迅速且通用。 问题描述 修改图名/表名/方程编号后快速更新交叉引用的内容 假设我们现在word文档中某处用了交叉引用。显然&#xff0c;图 1两个字颜色更深&#xff0c;就是我交叉引用的地方。 由于某…

贝莱德与摩根大通的最新季度持仓分析

近期&#xff0c;华尔街的两大投资巨头贝莱德和摩根大通公布了其2024年第二季度的13F报告&#xff0c;揭示了他们在投资组合上的最新动向。通过分析这些持仓数据&#xff0c;我们可以更清楚地了解这些顶级投资机构的投资策略和市场偏好。 贝莱德的科技巨头与能源投资 根据贝莱…

SpringBoot教程(二十二) | SpringBoot实现分布式定时任务之elastic-job

SpringBoot教程&#xff08;二十二&#xff09; | SpringBoot实现分布式定时任务之elastic-job 简介前置条件&#xff1a;需要ZooKeeper配合1、引入相关依赖2、application.yml中配置注册中心和作业调度巨坑&#xff08;配置修改无效&#xff09;3、job实例4、ElasticJob-UI监控…

网络编程-网络基础

IO进程: 进程和进程之间的通信 - 信号 信号量 消息队列 有名管道 无名管道 共享内存 套接字 套接字: 不同主机 不同操作系统之间的 进程通信 干什么: 实现无线 局域网&#xff1a;同一局域网下IP网段一致 IP地址 1) IP地址 是 网络中的 主机的标识, 本质是二进制数字。 2…

37_DC-5靶机渗透测试、nmap使用、kail漏洞库使用、系统提权、反弹shell到kali、留后门、蚁剑连接webshell、文件包含漏洞利用、NC用法

环境准备 靶机下载地址&#xff1a;https://www.vulnhub.com/entry/dc-5,314/ 百度网盘&#xff1a;https://pan.baidu.com/s/1lqFMjoqQpIl4DA-Amb00pA?pwd9LJY 攻击机&#xff1a;kali&#xff08;192.168.58.130&#xff0c;IP是各自不同的&#xff09; 靶机&#xff1…

SystemUI手势操作隐藏显示导航栏

在Android 12中&#xff0c;通过SystemUI手势操作来隐藏和显示导航栏主要涉及对系统UI的定制和编程控制。以下是一些实现这一功能的方法&#xff1a; 默认是隐藏 向上滑动 第一类. 使用WindowInsetsController Android 12引入了一个新的WindowInsetsController类&#xff0c;它…

【数据分享】1999—2022年地级市地区生产总值及一二三产构成数据(Shp/Excel格式)

在之前的文章中&#xff0c;我们分享过基于2000-2023年《中国城市统计年鉴》整理的1999-2022年地级市的人口相关数据、各类用地面积数据、污染物排放和环境治理相关数据、房地产投资情况和商品房销售面积、社会消费品零售总额和年末金融机构存贷款余额、一般公共预算收支状况、…

bootchart抓Android系统启动各阶段性能数据

最近在做Android系统启动优化&#xff0c;首要任务是找到启动过程中各阶段耗时点&#xff0c;进而有针对性地进行优化。主要用bootchart抓开机数据&#xff0c;本文主要记录下工具的使用方法。 1.抓开机数据 adb root adb shell ‘touch /data/bootchart/enabled’ adb rebo…