共计 4096 个字符,预计需要花费 11 分钟才能阅读完成。
最近我发现了这个 Stirling PDF 项目,正好我可以写一篇记录一下,也可以给我自己的工具网站增加工具来使用。
最后修改:2024SEP07
Stirling PDF 简介
Stirling PDF 基于 Web 的 PDF 操作工具。能够对PDF文件进行各种操作,包括分割、合并、转换、重组、添加图像、旋转、压缩等。支持多语言,功能还是挺多的。
GitHub地址:https://github.com/Stirling-Tools/Stirling-PDF
其他Docker项目:Cryptgeon安装教程,阅后即焚的共享笔记或文件服务。
Stirling PDF 安装
需要安装 Docker、Docker-compose环境,如果已经有跳过这个。
安装 Docker、Docker-compose环境:https://blog.ioacx.com/docker
创建项目文件夹
sudo -i
mkdir -p /root/data/docker_data/stirling_pdf
进入文件夹
cd /root/data/docker_data/stirling_pdf
创建文件修改
vim docker-compose.yml
按 i 修改,修改完成后按 ESC,输入 :wq 保存退出。
填入以下内容:
version: '3.3'
services:
stirling-pdf:
image: frooodle/s-pdf:latest
ports:
- '8080:8080' # 端口
volumes:
- /location/of/trainingData:/usr/share/tessdata #Required for extra OCR languages
- /location/of/extraConfigs:/configs
# - /location/of/customFiles:/customFiles/
# - /location/of/logs:/logs/
environment:
- DOCKER_ENABLE_SECURITY=false
- INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false
- 如果您想要启用用户登录模式,请将DOCKER_ENABLE_SECURITY设置为true,并参考https://github.com/Stirling-Tools/Stirling-PDF上的Login authentication”来进行设置。默认情况下,该值为false。
- INSTALL_BOOK_AND_ADVANCED_HTML_OPS也可以保持默认值。这个选项会将calibre下载到stirling-pdf,以支持PDF到书籍和高级HTML转换。如果您需要这些功能,请打开该选项。
- 端口为8080,按需要修改(8080端口被占用),可保持默认
在docker-compose.yml目录下输入
docker-compose up -d
等待一下,然后访问ip地址:设置的端口,我这里设置的端口是8080,所以访问ip地址:8080。
如果无法打开请查看是否没有打开防火墙!
可以看到:
Stirling PDF 使用
语言设置:
可以使用的功能挺多的这里就不一一介绍了。可以看下图:
定制化 Stirling PDF
Stirling PDF 允许轻松定制应用程序。包括类似的东西
- 自定义应用程序名称
- 自定义标语、图标、图像,甚至自定义 HTML(通过文件覆盖)
匹配文件位置 /location/of/extraConfigs:/configs
打开settings.yml
可以修改默认语言等等。
可以参考:
security:
enableLogin: false # 设置为 'true' 以启用登录
csrfDisabled: true # 设置为 'true' 以禁用 CSRF 跨站请求伪造保护(不建议用于生产环境)
loginAttemptCount: 5 # 尝试 5 次后锁定用户帐户;使用例如 Fail2Ban 时可以将该功能停用为 -1
loginResetTimeMinutes: 120 # 尝试 x 次后锁定帐户 2 小时
loginMethod: all # 'all'(登录用户名/密码和 OAuth2[必须启用和配置]),'normal'(仅使用用户名/密码登录),或 'oauth2'(仅使用 OAuth2 登录)
initialLogin:
username: 'admin' # 第一次登录的初始用户名
password: 'admin' # 第一次登录的初始密码
oauth2:
enabled: false # 设置为 'true' 以启用登录(注意:enableLogin 必须为 'true' 才能工作)
client:
keycloak:
issuer: '' # Keycloak 的 OpenID Connect Discovery 端点的 URL
clientId: '' # Keycloak OAuth2 的客户端 ID
clientSecret: '' # Keycloak OAuth2 的客户端密钥
scopes: openid, profile, email # Keycloak OAuth2 的范围
useAsUsername: preferred_username # 用作 Keycloak OAuth2 用户名的字段
google:
clientId: '' # Google OAuth2 的客户端 ID
clientSecret: '' # Google OAuth2 的客户端密钥
scopes: https://www.googleapis.com/auth/userinfo.email, https://www.googleapis.com/auth/userinfo.profile # Google OAuth2 的范围
useAsUsername: email # 用作 Google OAuth2 用户名的字段
github:
clientId: '' # GitHub OAuth2 的客户端 ID
clientSecret: '' # GitHub OAuth2 的客户端密钥
scopes: read:user # GitHub OAuth2 的范围
useAsUsername: login # 用作 GitHub OAuth2 用户名的字段
issuer: '' # 设置为支持 OpenID Connect Discovery (/.well-known/openid-configuration) 端点的任何提供者
clientId: '' # 从您的提供者获取的客户端 ID
clientSecret: '' # 从您的提供者获取的客户端密钥
autoCreateUser: false # 设置为 'true' 以允许自动创建不存在的用户
blockRegistration: false # 设置为 'true' 以禁止未事先由管理员注册的 SSO 登录
useAsUsername: email # 默认是 'email';可以使用自定义字段作为用户名
scopes: openid, profile, email # 指定应用程序请求权限的范围
provider: google # 设置为您的 OAuth 提供者名称,例如 'google' 或 'keycloak'
system:
defaultLocale: 'en-US' # 设置默认语言(例如 'de-DE', 'fr-FR' 等)
googlevisibility: false # 'true' 允许 Google 可见性(通过 robots.txt),'false' 不允许
enableAlphaFunctionality: false # 设置以启用可能需要更多测试才能完全上线的功能(此功能可能不会产生变化)
showUpdate: true # 查看是否有新更新可用
showUpdateOnlyAdmin: false # 只有管理员可以看到是否有新更新可用,取决于 showUpdate 必须设置为 'true'
customHTMLFiles: false # 启用以使放置在 /customFiles/templates 中的文件覆盖现有模板 html 文件
ui:
appName: '' # 应用程序的可见名称
homeDescription: '' # 主页上显示的简短说明或标语
appNameNavbar: '' # 导航栏上显示的名称
endpoints:
toRemove: [] # 要禁用的端点列表(例如 ['img-to-pdf', 'remove-pages'])
groupsToRemove: [] # 要禁用的组列表(例如 ['LibreOffice'])
metrics:
enabled: true # 'true' 启用 Info API (`/api/*`) 端点,'false' 禁用
- 设置登入后,用户名:admin 密码:stirling,登录时,会强制将密码更改为新密码。
- 还可以使用Github,Google和keycloak登入
- 您还可以使用环境变量
SECURITY_INITIALLOGIN_USERNAME
并SECURITY_INITIALLOGIN_PASSWORD
立即设置自己的环境变量(建议在创建用户后将其删除)。
这些设置不能保证是最新的,其他设置请参考项目GITHUB。
如果只是想修改网站名字的只要动UI哪里就可以了,其他可以保持默认。
利用宝塔面板反向代理
新建一个站点,什么都不用设置,纯静态即可。确保你已经完成了域名解析。
用宝塔自带的反向代理功能
查看上图的设置方法,把目标URL改成你实际使用的端口。
Stirling PDF 更新与卸载
更新:
cd /root/data/docker_data/stirling_pdf # 进入docker-compose所在的文件夹
docker-compose pull # 拉取最新的镜像
docker-compose up -d # 重新启动镜像
卸载:
sudo -i
cd /root/data/docker_data/stirling_pdf # 进入docker-compose所在的文件夹
docker-compose down # 停止容器,此时不会删除映射到本地的数据
cd ~
rm -rf /root/data/docker_data/stirling_pdf # 完全删除映射到本地的数据
总结
使用Docker安装还是方便的,这个Stirling PDF功能挺多的,可以安装来使用,满足您的所有PDF需求。