From f80dc8e9015ea08e2fa9d81faebd6faf8ef3a1fe Mon Sep 17 00:00:00 2001 From: okxlin <61420215+okxlin@users.noreply.github.com> Date: Tue, 28 Jul 2026 00:03:45 +0800 Subject: [PATCH] Add BentoPDF app --- apps/bentopdf/2.8.6/.env.sample | 2 + apps/bentopdf/2.8.6/data.yml | 19 ++++++++ apps/bentopdf/2.8.6/docker-compose.yml | 15 ++++++ apps/bentopdf/2.8.6/scripts/init.sh | 4 ++ apps/bentopdf/2.8.6/scripts/uninstall.sh | 2 + apps/bentopdf/2.8.6/scripts/upgrade.sh | 3 ++ apps/bentopdf/README.md | 54 ++++++++++++++++++++++ apps/bentopdf/data.yml | 31 +++++++++++++ apps/bentopdf/latest/.env.sample | 2 + apps/bentopdf/latest/data.yml | 19 ++++++++ apps/bentopdf/latest/docker-compose.yml | 15 ++++++ apps/bentopdf/latest/scripts/init.sh | 4 ++ apps/bentopdf/latest/scripts/uninstall.sh | 2 + apps/bentopdf/latest/scripts/upgrade.sh | 3 ++ apps/bentopdf/logo.png | Bin 0 -> 2369 bytes 15 files changed, 175 insertions(+) create mode 100644 apps/bentopdf/2.8.6/.env.sample create mode 100644 apps/bentopdf/2.8.6/data.yml create mode 100644 apps/bentopdf/2.8.6/docker-compose.yml create mode 100755 apps/bentopdf/2.8.6/scripts/init.sh create mode 100755 apps/bentopdf/2.8.6/scripts/uninstall.sh create mode 100755 apps/bentopdf/2.8.6/scripts/upgrade.sh create mode 100644 apps/bentopdf/README.md create mode 100644 apps/bentopdf/data.yml create mode 100644 apps/bentopdf/latest/.env.sample create mode 100644 apps/bentopdf/latest/data.yml create mode 100644 apps/bentopdf/latest/docker-compose.yml create mode 100755 apps/bentopdf/latest/scripts/init.sh create mode 100755 apps/bentopdf/latest/scripts/uninstall.sh create mode 100755 apps/bentopdf/latest/scripts/upgrade.sh create mode 100644 apps/bentopdf/logo.png diff --git a/apps/bentopdf/2.8.6/.env.sample b/apps/bentopdf/2.8.6/.env.sample new file mode 100644 index 000000000..7cd455811 --- /dev/null +++ b/apps/bentopdf/2.8.6/.env.sample @@ -0,0 +1,2 @@ +CONTAINER_NAME=bentopdf-compose-check +PANEL_APP_PORT_HTTP=8080 diff --git a/apps/bentopdf/2.8.6/data.yml b/apps/bentopdf/2.8.6/data.yml new file mode 100644 index 000000000..f19a5ee33 --- /dev/null +++ b/apps/bentopdf/2.8.6/data.yml @@ -0,0 +1,19 @@ +additionalProperties: + formFields: + - default: 8080 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Web Port + labelZh: Web 端口 + label: + en: Web Port + zh: Web 端口 + zh-Hant: Web 連接埠 + ja: Web ポート + ko: 웹 포트 + ru: Веб-порт + ms: Port Web + pt-br: Porta Web + required: true + rule: paramPort + type: number diff --git a/apps/bentopdf/2.8.6/docker-compose.yml b/apps/bentopdf/2.8.6/docker-compose.yml new file mode 100644 index 000000000..bbd735449 --- /dev/null +++ b/apps/bentopdf/2.8.6/docker-compose.yml @@ -0,0 +1,15 @@ +services: + bentopdf: + image: "ghcr.io/alam00000/bentopdf-simple:v2.8.6" + container_name: ${CONTAINER_NAME} + restart: unless-stopped + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:8080" + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/bentopdf/2.8.6/scripts/init.sh b/apps/bentopdf/2.8.6/scripts/init.sh new file mode 100755 index 000000000..2a53d75f3 --- /dev/null +++ b/apps/bentopdf/2.8.6/scripts/init.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -euo pipefail + +exit 0 diff --git a/apps/bentopdf/2.8.6/scripts/uninstall.sh b/apps/bentopdf/2.8.6/scripts/uninstall.sh new file mode 100755 index 000000000..ab8a8d674 --- /dev/null +++ b/apps/bentopdf/2.8.6/scripts/uninstall.sh @@ -0,0 +1,2 @@ +#!/bin/bash +docker-compose down --volumes diff --git a/apps/bentopdf/2.8.6/scripts/upgrade.sh b/apps/bentopdf/2.8.6/scripts/upgrade.sh new file mode 100755 index 000000000..9879df4c3 --- /dev/null +++ b/apps/bentopdf/2.8.6/scripts/upgrade.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +set -euo pipefail +exit 0 diff --git a/apps/bentopdf/README.md b/apps/bentopdf/README.md new file mode 100644 index 000000000..5f3aea7c7 --- /dev/null +++ b/apps/bentopdf/README.md @@ -0,0 +1,54 @@ +# BentoPDF + +## 产品介绍 + +BentoPDF 是一个在浏览器中本地处理文档的 PDF 工具集,提供合并、拆分、转换、编辑、OCR 和签名等功能。此应用使用官方推荐的 `bentopdf-simple` 自托管镜像,不使用商业镜像。 + +## 主要功能 + +- 合并、拆分、转换、编辑、OCR 和签名 PDF。 +- 在浏览器中处理文档,无需应用数据库或服务端文件卷。 +- 使用上游的自托管 Simple Mode 完整工具集。 + +## 访问说明 + +- 默认 Web 端口:`8080` +- 容器内部端口:`8080` +- 安装完成后在浏览器打开 1Panel 中配置的端口。 + +## 数据与隐私 + +- 容器不挂载持久化目录,也不包含数据库。 +- 文档由浏览器处理;关闭或刷新页面前请下载处理结果。 +- 将服务暴露到公网时,请通过 1Panel 网站反向代理配置 HTTPS 和访问控制。 + +## 版本 + +- `latest` 跟随官方自托管镜像的最新发布。 +- 固定版本目录用于可重复部署。 + +## 许可证 + +BentoPDF 上游项目采用 AGPL-3.0-only 许可证。 + +## Introduction + +BentoPDF is a PDF toolkit that processes documents locally in the browser. It includes tools for merging, splitting, converting, editing, OCR, and signing PDFs. This package uses the upstream-recommended `bentopdf-simple` self-hosted image, not the commercial image. + +## Features + +- Merge, split, convert, edit, OCR, and sign PDFs. +- Process documents in the browser without an application database or server-side file volume. +- Use the complete upstream self-hosted Simple Mode toolset. + +## Access + +- Default web port: `8080` +- Container port: `8080` +- Open the port configured in 1Panel after installation. + +## Data and Privacy + +- The container has no persistent volume or database. +- Documents are processed in the browser; download results before closing or refreshing the page. +- When exposing the service publicly, configure HTTPS and access controls through a 1Panel website reverse proxy. diff --git a/apps/bentopdf/data.yml b/apps/bentopdf/data.yml new file mode 100644 index 000000000..6045416a2 --- /dev/null +++ b/apps/bentopdf/data.yml @@ -0,0 +1,31 @@ +name: BentoPDF +tags: + - Tool +title: 本地优先的 PDF 工具集 +description: 本地优先的 PDF 工具集 +additionalProperties: + key: bentopdf + name: BentoPDF + tags: + - Tool + shortDescZh: 本地优先的 PDF 工具集 + shortDescEn: Privacy-first PDF tools that process files in your browser + description: + en: A privacy-first PDF toolkit that processes documents locally in your browser. + zh: 在浏览器本地处理文档的隐私优先 PDF 工具集。 + zh-Hant: 在瀏覽器本機處理文件的隱私優先 PDF 工具集。 + ja: ブラウザー内で文書をローカル処理する、プライバシー重視の PDF ツール集です。 + ko: 브라우저에서 문서를 로컬로 처리하는 개인 정보 보호 중심 PDF 도구 모음입니다. + ru: Набор PDF-инструментов с приоритетом конфиденциальности, обрабатывающий документы локально в браузере. + ms: Set alatan PDF yang mengutamakan privasi dan memproses dokumen secara tempatan dalam pelayar anda. + pt-br: Um conjunto de ferramentas de PDF com foco em privacidade que processa documentos localmente no navegador. + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://bentopdf.com/ + document: https://github.com/alam00000/bentopdf/tree/v2.8.6/docs/self-hosting + github: https://github.com/alam00000/bentopdf + architectures: + - amd64 + - arm64 diff --git a/apps/bentopdf/latest/.env.sample b/apps/bentopdf/latest/.env.sample new file mode 100644 index 000000000..7cd455811 --- /dev/null +++ b/apps/bentopdf/latest/.env.sample @@ -0,0 +1,2 @@ +CONTAINER_NAME=bentopdf-compose-check +PANEL_APP_PORT_HTTP=8080 diff --git a/apps/bentopdf/latest/data.yml b/apps/bentopdf/latest/data.yml new file mode 100644 index 000000000..f19a5ee33 --- /dev/null +++ b/apps/bentopdf/latest/data.yml @@ -0,0 +1,19 @@ +additionalProperties: + formFields: + - default: 8080 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Web Port + labelZh: Web 端口 + label: + en: Web Port + zh: Web 端口 + zh-Hant: Web 連接埠 + ja: Web ポート + ko: 웹 포트 + ru: Веб-порт + ms: Port Web + pt-br: Porta Web + required: true + rule: paramPort + type: number diff --git a/apps/bentopdf/latest/docker-compose.yml b/apps/bentopdf/latest/docker-compose.yml new file mode 100644 index 000000000..16dff3347 --- /dev/null +++ b/apps/bentopdf/latest/docker-compose.yml @@ -0,0 +1,15 @@ +services: + bentopdf: + image: "ghcr.io/alam00000/bentopdf-simple:latest" + container_name: ${CONTAINER_NAME} + restart: unless-stopped + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:8080" + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/bentopdf/latest/scripts/init.sh b/apps/bentopdf/latest/scripts/init.sh new file mode 100755 index 000000000..2a53d75f3 --- /dev/null +++ b/apps/bentopdf/latest/scripts/init.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -euo pipefail + +exit 0 diff --git a/apps/bentopdf/latest/scripts/uninstall.sh b/apps/bentopdf/latest/scripts/uninstall.sh new file mode 100755 index 000000000..ab8a8d674 --- /dev/null +++ b/apps/bentopdf/latest/scripts/uninstall.sh @@ -0,0 +1,2 @@ +#!/bin/bash +docker-compose down --volumes diff --git a/apps/bentopdf/latest/scripts/upgrade.sh b/apps/bentopdf/latest/scripts/upgrade.sh new file mode 100755 index 000000000..9879df4c3 --- /dev/null +++ b/apps/bentopdf/latest/scripts/upgrade.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +set -euo pipefail +exit 0 diff --git a/apps/bentopdf/logo.png b/apps/bentopdf/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..874ed39d6ff07c428dc5bb24c03a029cf4a91202 GIT binary patch literal 2369 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 nyM`I-{W{^dI