mirror of
https://github.com/okxlin/appstore.git
synced 2026-10-08 16:00:35 +00:00
Merge pull request #5414 from okxlin/adapt/pdfding-20260731-single-commit
feat: add PdfDing
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
CONTAINER_NAME=pdfding
|
||||
PANEL_APP_PORT_HTTP=8000
|
||||
PDFDING_HOST_NAME=*
|
||||
PDFDING_SECRET_KEY=replace-with-a-random-application-secret
|
||||
PDFDING_CSRF_COOKIE_SECURE=FALSE
|
||||
PDFDING_SESSION_COOKIE_SECURE=FALSE
|
||||
PDFDING_DISABLE_USER_SIGNUP=FALSE
|
||||
PDFDING_ACCOUNT_PROTOCOL=http
|
||||
TZ=Asia/Shanghai
|
||||
@@ -0,0 +1,153 @@
|
||||
additionalProperties:
|
||||
formFields:
|
||||
- default: 8000
|
||||
edit: true
|
||||
envKey: PANEL_APP_PORT_HTTP
|
||||
labelEn: HTTP Port
|
||||
labelZh: HTTP 端口
|
||||
label:
|
||||
en: HTTP Port
|
||||
zh: HTTP 端口
|
||||
zh-Hant: HTTP 連接埠
|
||||
ja: HTTP ポート
|
||||
ko: HTTP 포트
|
||||
ru: Порт HTTP
|
||||
ms: Port HTTP
|
||||
pt-br: Porta HTTP
|
||||
required: true
|
||||
rule: paramPort
|
||||
type: number
|
||||
- default: "*"
|
||||
edit: true
|
||||
envKey: PDFDING_HOST_NAME
|
||||
labelEn: Allowed Hosts
|
||||
labelZh: 允许的主机
|
||||
label:
|
||||
en: Allowed Hosts
|
||||
zh: 允许的主机
|
||||
zh-Hant: 允許的主機
|
||||
ja: 許可するホスト
|
||||
ko: 허용된 호스트
|
||||
ru: Разрешенные хосты
|
||||
ms: Hos yang dibenarkan
|
||||
pt-br: Hosts permitidos
|
||||
required: true
|
||||
type: text
|
||||
- default: ""
|
||||
edit: true
|
||||
envKey: PDFDING_SECRET_KEY
|
||||
labelEn: Application Secret
|
||||
labelZh: 应用密钥
|
||||
label:
|
||||
en: Application Secret
|
||||
zh: 应用密钥
|
||||
zh-Hant: 應用程式密鑰
|
||||
ja: アプリケーションシークレット
|
||||
ko: 애플리케이션 비밀 키
|
||||
ru: Секрет приложения
|
||||
ms: Rahsia aplikasi
|
||||
pt-br: Segredo do aplicativo
|
||||
random: true
|
||||
required: true
|
||||
rule: paramComplexity
|
||||
type: password
|
||||
- default: "FALSE"
|
||||
edit: true
|
||||
envKey: PDFDING_CSRF_COOKIE_SECURE
|
||||
labelEn: Secure CSRF Cookie
|
||||
labelZh: 安全 CSRF Cookie
|
||||
label:
|
||||
en: Secure CSRF Cookie
|
||||
zh: 安全 CSRF Cookie
|
||||
zh-Hant: 安全 CSRF Cookie
|
||||
ja: セキュア CSRF Cookie
|
||||
ko: 보안 CSRF Cookie
|
||||
ru: Защищенный CSRF Cookie
|
||||
ms: Cookie CSRF selamat
|
||||
pt-br: Cookie CSRF seguro
|
||||
required: true
|
||||
type: select
|
||||
values:
|
||||
- label: "Disabled"
|
||||
value: "FALSE"
|
||||
- label: "Enabled"
|
||||
value: "TRUE"
|
||||
- default: "FALSE"
|
||||
edit: true
|
||||
envKey: PDFDING_SESSION_COOKIE_SECURE
|
||||
labelEn: Secure Session Cookie
|
||||
labelZh: 安全会话 Cookie
|
||||
label:
|
||||
en: Secure Session Cookie
|
||||
zh: 安全会话 Cookie
|
||||
zh-Hant: 安全工作階段 Cookie
|
||||
ja: セキュアセッション Cookie
|
||||
ko: 보안 세션 Cookie
|
||||
ru: Защищенный Cookie сеанса
|
||||
ms: Cookie sesi selamat
|
||||
pt-br: Cookie de sessão seguro
|
||||
required: true
|
||||
type: select
|
||||
values:
|
||||
- label: "Disabled"
|
||||
value: "FALSE"
|
||||
- label: "Enabled"
|
||||
value: "TRUE"
|
||||
- default: "FALSE"
|
||||
edit: true
|
||||
envKey: PDFDING_DISABLE_USER_SIGNUP
|
||||
labelEn: Disable User Signup
|
||||
labelZh: 禁止用户注册
|
||||
label:
|
||||
en: Disable User Signup
|
||||
zh: 禁止用户注册
|
||||
zh-Hant: 禁止使用者註冊
|
||||
ja: ユーザー登録を無効化
|
||||
ko: 사용자 가입 비활성화
|
||||
ru: Отключить регистрацию пользователей
|
||||
ms: Lumpuhkan pendaftaran pengguna
|
||||
pt-br: Desativar cadastro de usuários
|
||||
required: true
|
||||
type: select
|
||||
values:
|
||||
- label: "No"
|
||||
value: "FALSE"
|
||||
- label: "Yes"
|
||||
value: "TRUE"
|
||||
- default: http
|
||||
edit: true
|
||||
envKey: PDFDING_ACCOUNT_PROTOCOL
|
||||
labelEn: Public URL Scheme
|
||||
labelZh: 公共 URL 协议
|
||||
label:
|
||||
en: Public URL Scheme
|
||||
zh: 公共 URL 协议
|
||||
zh-Hant: 公開 URL 通訊協定
|
||||
ja: 公開 URL スキーム
|
||||
ko: 공개 URL 스킴
|
||||
ru: Схема публичного URL
|
||||
ms: Skema URL awam
|
||||
pt-br: Esquema da URL pública
|
||||
required: true
|
||||
type: select
|
||||
values:
|
||||
- label: HTTP
|
||||
value: http
|
||||
- label: HTTPS
|
||||
value: https
|
||||
- default: Asia/Shanghai
|
||||
edit: true
|
||||
envKey: TZ
|
||||
labelEn: Time Zone
|
||||
labelZh: 时区
|
||||
label:
|
||||
en: Time Zone
|
||||
zh: 时区
|
||||
zh-Hant: 時區
|
||||
ja: タイムゾーン
|
||||
ko: 시간대
|
||||
ru: Часовой пояс
|
||||
ms: Zon waktu
|
||||
pt-br: Fuso horário
|
||||
required: true
|
||||
type: text
|
||||
@@ -0,0 +1,32 @@
|
||||
services:
|
||||
pdfding:
|
||||
image: "mrmn/pdfding:v1.11.0"
|
||||
container_name: ${CONTAINER_NAME}
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- 1panel-network
|
||||
ports:
|
||||
- "${PANEL_APP_PORT_HTTP}:8000"
|
||||
volumes:
|
||||
- "./data/db:/home/nonroot/pdfding/db"
|
||||
- "./data/media:/home/nonroot/pdfding/media"
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
- SECRET_KEY=${PDFDING_SECRET_KEY}
|
||||
- HOST_NAME=${PDFDING_HOST_NAME}
|
||||
- CSRF_COOKIE_SECURE=${PDFDING_CSRF_COOKIE_SECURE}
|
||||
- SESSION_COOKIE_SECURE=${PDFDING_SESSION_COOKIE_SECURE}
|
||||
- DISABLE_USER_SIGNUP=${PDFDING_DISABLE_USER_SIGNUP}
|
||||
- ACCOUNT_DEFAULT_HTTP_PROTOCOL=${PDFDING_ACCOUNT_PROTOCOL}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1:8000/healthz >/dev/null || exit 1"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
start_period: 30s
|
||||
retries: 12
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
|
||||
umask 027
|
||||
mkdir -p -- "$ROOT_DIR/data/db" "$ROOT_DIR/data/media"
|
||||
chown 1000:1000 -- "$ROOT_DIR/data/db" "$ROOT_DIR/data/media" 2>/dev/null || true
|
||||
chmod 0750 -- "$ROOT_DIR/data/db" "$ROOT_DIR/data/media"
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
exit 0
|
||||
@@ -0,0 +1,39 @@
|
||||
# PdfDing
|
||||
|
||||
## 产品介绍
|
||||
|
||||
PdfDing 是一个自托管的 PDF 管理、阅读与编辑工具,支持跨设备阅读进度、工作区与集合、标签、批量操作、分享、批注、签名和双因素认证。
|
||||
|
||||
## 主要功能
|
||||
|
||||
- 在浏览器中上传、管理、阅读和编辑 PDF
|
||||
- 使用工作区、集合、多级标签、收藏和归档组织文档
|
||||
- 添加高亮、评论、绘图、文本和签名
|
||||
- 通过链接或二维码分享 PDF 和集合
|
||||
- 支持本地账户、OIDC 单点登录和双因素认证
|
||||
|
||||
## 访问说明
|
||||
|
||||
- 安装后访问 `http://<服务器 IP>:<配置端口>` 并注册首个本地账户
|
||||
- 默认配置适用于 HTTP 直连;通过 HTTPS 反向代理访问时,请将公开 URL 协议设为 HTTPS、启用安全 Cookie,并将允许的主机设置为实际域名
|
||||
- 数据库和上传的 PDF 分别保存在版本目录的 `data/db` 与 `data/media` 中
|
||||
|
||||
## Introduction
|
||||
|
||||
PdfDing is a self-hosted PDF manager, viewer and editor with reading progress, workspaces, collections, tags, sharing, annotations, signatures and two-factor authentication.
|
||||
|
||||
## Features
|
||||
|
||||
- Upload, organize, read and edit PDFs in a browser
|
||||
- Organize documents with workspaces, collections, nested tags, starring and archiving
|
||||
- Add highlights, comments, drawings, text and signatures
|
||||
- Share PDFs and collections by link or QR code
|
||||
- Use local accounts, OIDC single sign-on and two-factor authentication
|
||||
|
||||
## Access
|
||||
|
||||
- Open `http://<server-ip>:<configured-port>` and register the first local account
|
||||
- The defaults are intended for direct HTTP access; select HTTPS as the public URL scheme, enable secure cookies and set the actual host when using an HTTPS reverse proxy
|
||||
- The SQLite database and uploaded PDFs are stored under `data/db` and `data/media` in the selected version directory
|
||||
|
||||
Official documentation: <https://docs.pdfding.com/getting_started/docker/>
|
||||
@@ -0,0 +1,31 @@
|
||||
name: PdfDing
|
||||
tags:
|
||||
- Tool
|
||||
title: 自托管 PDF 管理、阅读与编辑工具
|
||||
description: 自托管 PDF 管理、阅读与编辑工具
|
||||
additionalProperties:
|
||||
key: pdfding
|
||||
name: PdfDing
|
||||
tags:
|
||||
- Tool
|
||||
shortDescZh: 自托管 PDF 管理、阅读与编辑工具
|
||||
shortDescEn: A self-hosted PDF manager, viewer and editor
|
||||
description:
|
||||
en: A self-hosted PDF manager, viewer and editor
|
||||
zh: 自托管 PDF 管理、阅读与编辑工具
|
||||
zh-Hant: 自架 PDF 管理、閱讀與編輯工具
|
||||
ja: セルフホスト型の PDF 管理、閲覧、編集ツール
|
||||
ko: 자체 호스팅 PDF 관리, 보기 및 편집 도구
|
||||
ru: Самостоятельно размещаемый менеджер, просмотрщик и редактор PDF
|
||||
ms: Pengurus, pemapar dan penyunting PDF hos kendiri
|
||||
pt-br: Gerenciador, visualizador e editor de PDF auto-hospedado
|
||||
type: tool
|
||||
crossVersionUpdate: true
|
||||
limit: 0
|
||||
recommend: 0
|
||||
website: https://www.pdfding.com
|
||||
github: https://github.com/mrmn2/PdfDing
|
||||
document: https://docs.pdfding.com/getting_started/docker/
|
||||
architectures:
|
||||
- amd64
|
||||
- arm64
|
||||
@@ -0,0 +1,9 @@
|
||||
CONTAINER_NAME=pdfding
|
||||
PANEL_APP_PORT_HTTP=8000
|
||||
PDFDING_HOST_NAME=*
|
||||
PDFDING_SECRET_KEY=replace-with-a-random-application-secret
|
||||
PDFDING_CSRF_COOKIE_SECURE=FALSE
|
||||
PDFDING_SESSION_COOKIE_SECURE=FALSE
|
||||
PDFDING_DISABLE_USER_SIGNUP=FALSE
|
||||
PDFDING_ACCOUNT_PROTOCOL=http
|
||||
TZ=Asia/Shanghai
|
||||
@@ -0,0 +1,153 @@
|
||||
additionalProperties:
|
||||
formFields:
|
||||
- default: 8000
|
||||
edit: true
|
||||
envKey: PANEL_APP_PORT_HTTP
|
||||
labelEn: HTTP Port
|
||||
labelZh: HTTP 端口
|
||||
label:
|
||||
en: HTTP Port
|
||||
zh: HTTP 端口
|
||||
zh-Hant: HTTP 連接埠
|
||||
ja: HTTP ポート
|
||||
ko: HTTP 포트
|
||||
ru: Порт HTTP
|
||||
ms: Port HTTP
|
||||
pt-br: Porta HTTP
|
||||
required: true
|
||||
rule: paramPort
|
||||
type: number
|
||||
- default: "*"
|
||||
edit: true
|
||||
envKey: PDFDING_HOST_NAME
|
||||
labelEn: Allowed Hosts
|
||||
labelZh: 允许的主机
|
||||
label:
|
||||
en: Allowed Hosts
|
||||
zh: 允许的主机
|
||||
zh-Hant: 允許的主機
|
||||
ja: 許可するホスト
|
||||
ko: 허용된 호스트
|
||||
ru: Разрешенные хосты
|
||||
ms: Hos yang dibenarkan
|
||||
pt-br: Hosts permitidos
|
||||
required: true
|
||||
type: text
|
||||
- default: ""
|
||||
edit: true
|
||||
envKey: PDFDING_SECRET_KEY
|
||||
labelEn: Application Secret
|
||||
labelZh: 应用密钥
|
||||
label:
|
||||
en: Application Secret
|
||||
zh: 应用密钥
|
||||
zh-Hant: 應用程式密鑰
|
||||
ja: アプリケーションシークレット
|
||||
ko: 애플리케이션 비밀 키
|
||||
ru: Секрет приложения
|
||||
ms: Rahsia aplikasi
|
||||
pt-br: Segredo do aplicativo
|
||||
random: true
|
||||
required: true
|
||||
rule: paramComplexity
|
||||
type: password
|
||||
- default: "FALSE"
|
||||
edit: true
|
||||
envKey: PDFDING_CSRF_COOKIE_SECURE
|
||||
labelEn: Secure CSRF Cookie
|
||||
labelZh: 安全 CSRF Cookie
|
||||
label:
|
||||
en: Secure CSRF Cookie
|
||||
zh: 安全 CSRF Cookie
|
||||
zh-Hant: 安全 CSRF Cookie
|
||||
ja: セキュア CSRF Cookie
|
||||
ko: 보안 CSRF Cookie
|
||||
ru: Защищенный CSRF Cookie
|
||||
ms: Cookie CSRF selamat
|
||||
pt-br: Cookie CSRF seguro
|
||||
required: true
|
||||
type: select
|
||||
values:
|
||||
- label: "Disabled"
|
||||
value: "FALSE"
|
||||
- label: "Enabled"
|
||||
value: "TRUE"
|
||||
- default: "FALSE"
|
||||
edit: true
|
||||
envKey: PDFDING_SESSION_COOKIE_SECURE
|
||||
labelEn: Secure Session Cookie
|
||||
labelZh: 安全会话 Cookie
|
||||
label:
|
||||
en: Secure Session Cookie
|
||||
zh: 安全会话 Cookie
|
||||
zh-Hant: 安全工作階段 Cookie
|
||||
ja: セキュアセッション Cookie
|
||||
ko: 보안 세션 Cookie
|
||||
ru: Защищенный Cookie сеанса
|
||||
ms: Cookie sesi selamat
|
||||
pt-br: Cookie de sessão seguro
|
||||
required: true
|
||||
type: select
|
||||
values:
|
||||
- label: "Disabled"
|
||||
value: "FALSE"
|
||||
- label: "Enabled"
|
||||
value: "TRUE"
|
||||
- default: "FALSE"
|
||||
edit: true
|
||||
envKey: PDFDING_DISABLE_USER_SIGNUP
|
||||
labelEn: Disable User Signup
|
||||
labelZh: 禁止用户注册
|
||||
label:
|
||||
en: Disable User Signup
|
||||
zh: 禁止用户注册
|
||||
zh-Hant: 禁止使用者註冊
|
||||
ja: ユーザー登録を無効化
|
||||
ko: 사용자 가입 비활성화
|
||||
ru: Отключить регистрацию пользователей
|
||||
ms: Lumpuhkan pendaftaran pengguna
|
||||
pt-br: Desativar cadastro de usuários
|
||||
required: true
|
||||
type: select
|
||||
values:
|
||||
- label: "No"
|
||||
value: "FALSE"
|
||||
- label: "Yes"
|
||||
value: "TRUE"
|
||||
- default: http
|
||||
edit: true
|
||||
envKey: PDFDING_ACCOUNT_PROTOCOL
|
||||
labelEn: Public URL Scheme
|
||||
labelZh: 公共 URL 协议
|
||||
label:
|
||||
en: Public URL Scheme
|
||||
zh: 公共 URL 协议
|
||||
zh-Hant: 公開 URL 通訊協定
|
||||
ja: 公開 URL スキーム
|
||||
ko: 공개 URL 스킴
|
||||
ru: Схема публичного URL
|
||||
ms: Skema URL awam
|
||||
pt-br: Esquema da URL pública
|
||||
required: true
|
||||
type: select
|
||||
values:
|
||||
- label: HTTP
|
||||
value: http
|
||||
- label: HTTPS
|
||||
value: https
|
||||
- default: Asia/Shanghai
|
||||
edit: true
|
||||
envKey: TZ
|
||||
labelEn: Time Zone
|
||||
labelZh: 时区
|
||||
label:
|
||||
en: Time Zone
|
||||
zh: 时区
|
||||
zh-Hant: 時區
|
||||
ja: タイムゾーン
|
||||
ko: 시간대
|
||||
ru: Часовой пояс
|
||||
ms: Zon waktu
|
||||
pt-br: Fuso horário
|
||||
required: true
|
||||
type: text
|
||||
@@ -0,0 +1,32 @@
|
||||
services:
|
||||
pdfding:
|
||||
image: "mrmn/pdfding:latest"
|
||||
container_name: ${CONTAINER_NAME}
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- 1panel-network
|
||||
ports:
|
||||
- "${PANEL_APP_PORT_HTTP}:8000"
|
||||
volumes:
|
||||
- "./data/db:/home/nonroot/pdfding/db"
|
||||
- "./data/media:/home/nonroot/pdfding/media"
|
||||
environment:
|
||||
- TZ=${TZ}
|
||||
- SECRET_KEY=${PDFDING_SECRET_KEY}
|
||||
- HOST_NAME=${PDFDING_HOST_NAME}
|
||||
- CSRF_COOKIE_SECURE=${PDFDING_CSRF_COOKIE_SECURE}
|
||||
- SESSION_COOKIE_SECURE=${PDFDING_SESSION_COOKIE_SECURE}
|
||||
- DISABLE_USER_SIGNUP=${PDFDING_DISABLE_USER_SIGNUP}
|
||||
- ACCOUNT_DEFAULT_HTTP_PROTOCOL=${PDFDING_ACCOUNT_PROTOCOL}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1:8000/healthz >/dev/null || exit 1"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
start_period: 30s
|
||||
retries: 12
|
||||
labels:
|
||||
createdBy: "Apps"
|
||||
|
||||
networks:
|
||||
1panel-network:
|
||||
external: true
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
|
||||
umask 027
|
||||
mkdir -p -- "$ROOT_DIR/data/db" "$ROOT_DIR/data/media"
|
||||
chown 1000:1000 -- "$ROOT_DIR/data/db" "$ROOT_DIR/data/media" 2>/dev/null || true
|
||||
chmod 0750 -- "$ROOT_DIR/data/db" "$ROOT_DIR/data/media"
|
||||
Executable
+2
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
exit 0
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
Reference in New Issue
Block a user