Linux本地部署开源AI的PDF工具—Stirling PDF并实现公网随时访问

文章目录

    • 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

本地访问地址: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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PBKDF2算法:保障密码安全的利器

title: PBKDF2算法:保障密码安全的利器 date: 2024/3/14 16:40:05 updated: 2024/3/14 16:40:05 tags: PBKDF2算法密码安全性迭代盐值密钥 PBKDF2算法起源: PBKDF2(Password-Based Key Derivation Function 2)算法是一种基于密码…

Pycharm / idea上传项目到 Github 报错

报错内容: gitgithub.com: Permission denied (publickey).翻译–>gitgithub.com:权限被拒绝(公钥). 出现上述报错的原因:   客户端与服务端的ssh key不匹配   客户端与服务端未生成 ssh key 登录上Github查看ssh key是否存在,如果存在,那么可以对…

机器学习-0X-神经网络

总结 本系列是机器学习课程的系列课程,主要介绍机器学习中神经网络算法。 本门课程的目标 完成一个特定行业的算法应用全过程: 懂业务会选择合适的算法数据处理算法训练算法调优算法融合 算法评估持续调优工程化接口实现 参考 机器学习定义 关于机…

手写简易操作系统(八)--特权级以及TSS

前情提要 我们在这里梳理一下上面几节讲的内容 首先是计算机开机,BIOS接过第一棒,将第一个扇区MBR的内容导入到内存 0x7c00 的位置。 然后就是MBR中我们自己写的内容,将Loader导入到 0x600 的地址,Loader设置了GDT,…

智能工厂核心功能系统-MES生产管理系统

MES在未来智能制造中扮演着至关重要的角色,通过其在生产管理中的应用,将帮助企业实现智能化转型,提升生产效率和产品质量,推动整个制造业向着更加智能、高效、可持续的方向发展。 通过对MES在未来智能制造发展趋势中的地位进行深…

ip广播智慧工地广播喊话号角 IP网络号角在塔吊中应用 通过寻呼话筒预案广播

ip广播智慧工地广播喊话号角 IP网络号角在塔吊中应用 通过寻呼话筒预案广播 SV-704XT是深圳锐科达电子有限公司的一款壁挂式网络有源号角,具有10/100M以太网接口,可将网络音源通过自带的功放和号角喇叭输出播放,可达到功率50W。SV-704XT内置有…

如何配置Apache的反向代理

目录 前言 一、反向代理的工作原理 二、Apache反向代理的配置 1. 安装Apache和相关模块 2. 配置反向代理规则 3. 重启Apache服务器 三、常见的使用案例 1. 负载均衡 2. 缓存 3. SSL加密 总结 前言 随着Web应用程序的不断发展和扩展,需要处理大量的请求和…

企业架构设计方法与实践中的架构治理演进、架构评估方法、架构成熟度模型

企业架构设计方法与实践中的架构治理演进、架构评估方法、架构成熟度模型。 架构治理演进: 架构治理是指通过设立和执行一套政策和程序,来管理和控制一个组织的架构活动。架构治理演进是一个持续的过程,需要根据组织的实际情况进行定期审查和调整。 在演进过程中,重点需要…

Spring Boot 集成 WebSocket 实例 | 前端持续打印远程日志文件更新内容(模拟 tail 命令)

这个是我在 CSDN 的第一百篇原则博文,留念😎 #1 需求说明 先说下项目结构,后端基于 Spring Boot 3,前端为 node.js 开发的控制台程序。现在希望能够在前端模拟 tail 命令,持续输出后端的日志文件。 #2 技术方案 #2.…

应用案例 | 基于三维机器视觉的自动化码垛解决方案

Part.1 行业背景 通过显扬科技三维机器视觉设备,搭配三维视觉分析系统,实现码垛的智能化升级,早期使用机器人码垛采用机械臂和简单的控制系统,码垛能力和效率较低。随着现代工业的发展,机器人码垛也开始采用先进的传感…

Flink通讯模型—Akka与Actor模型

Carl Hewitt 在1973年对Actor模型进行了如下定义:"Actor模型是一个把Actor作为并发计算的通用原语". Actor是异步驱动,可以并行和分布式部署及运行的最小颗粒。也就是说,它可以被分配,分布,调度到不同的CPU&…

金蝶BI方案能解决云星空数据分析痛点吗?

金蝶云星空作为一个主攻企业管理流程的软件确实立下了汗马功劳,但一到数据分析方面那就阻碍重重了。直接的感受是分析步骤多且复杂,数据展现不够直观易懂,有些分析指标的计算真的很难实现,跨部门跨组织计算指标、合并账套什么的能…

音频读取之wave和liborsa

wave 常见的语音信号处理python库有librosa, scipy, soundfile等等。wave库是python的标准库,对于python来说相对底层,wave不支持压缩/解压,但支持单声道/立体声语音的读取。 读取音频 import wave #导入库file_path D:/ba.wav #文件路径…

微服务分布式基于Springcloud的拍卖管理系统597wx

越来越多的用户利用互联网获得信息,但各种信息鱼龙混杂,信息真假难以辨别。为了方便用户更好的获得信息,因此,设计一种安全高效的拍卖管理系统极为重要。 为设计一个安全便捷,并且使用户更好获取拍卖管理系统&#xff…

数据结构:链式二叉树

对于二叉树而言,如果不是完全二叉树,就不再适合用数组存储了 二叉树的遍历 顺序 访问顺序(n NULL) 1.前序 根,左子树,右子树 1 2 3 n n n 4 5 n n 6 n n 2.中序 左子树,根,右子树 n 3 n 2 n 1 n 5 n 4 n 6 n 3.后…

【算法与数据结构】深入解析二叉树(一)

文章目录 📝数概念及结构🌠 树的概念🌉树的表示🌠 树在实际中的运用(表示文件系统的目录树结构) 🌉二叉树概念及结构🌠概念🌉数据结构中的二叉树🌠特殊的二叉…

深入浅出:Objective-C中使用MWFeedParser下载豆瓣RSS

摘要 本文旨在介绍如何在Objective-C中使用MWFeedParser库下载豆瓣RSS内容,同时展示如何通过爬虫代理IP技术和多线程提高爬虫的效率和安全性。 背景 随着信息量的激增,爬虫技术成为了获取和处理大量网络数据的重要手段。Objective-C作为一种成熟的编程…

软考77-上午题-【面向对象技术3-设计模式】-创建型设计模式02

一、生成器模式 1-1、意图 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 1-2、结构图 Builder 为创建一个 Product 对象的各个部件指定抽象接口。ConcreteBuilder 实现 Builder 的接口以构造和装配该产品的各个部件,定…

IDEA如何删除git最新一次远程提交

IDEA如何删除git最新一次远程提交 选择应用 -> Git -> Show History 选择最新提交上一次提交 -> Reset Current Branch to Here… Reset 提示框选择 Hard push到远程分支 -> 选择Force Push 结果验证 (最新分支已被删除)

QT网络编程之实现UDP广播发送和接收

推荐一个不错的人工智能学习网站,通俗易懂,内容全面,作为入门科普和学习提升都不错,分享一下给大家:前言https://www.captainbed.cn/ai 一.UDP通信 1.QT中实现UDP通信主要用到了以下类:QUdpSocket、QHost…