PDF管理器和查看器PdfDing
什么是 PdfDing ?
PdfDing是一款自托管Docker设置。
功能特点
- 在多种设备上无缝基于浏览器的
PDF查看 - 使用标签整理
PDF - 干净且响应迅速的用户界面
- 暗黑模式
- 记住当前位置 - 从停止的地方继续阅读
- 通过
OIDC支持SSO - 每个用户都可以上传自己的
PDF,无需管理员管理内容。
软件的使用很简单,看官方的动图一目了然

安装
在群晖上以 Docker 方式安装。
在注册表中搜索 pdfding ,选择第一个 mrmn/pdfding,版本选择 latest。
本文写作时,
latest版本对应为0.1.2;

卷
在 docker 文件夹中,创建一个新文件夹 pdfding,并在其中建两个子文件夹 data 和 media
默认情况下,这两个子文件夹,Everyone 都只有读权限

需要赋予 Everyone 读写权限

最后要成这样才行

data 和 media 两个目录都需要修改权限,如果 data 没修改的话,容器会启动失败,因为无法写入数据库,而 media 没修改的话,在上传 pdf 时会报错
PdfDing默认使用SQLite数据库。另外,PdfDing也支持PostgreSQL
| 文件夹 | 装载路径 | 说明 |
|---|---|---|
docker/pdfding/data |
/home/nonroot/pdfding/db |
存放数据库 |
docker/pdfding/media |
/home/nonroot/pdfding/media |
存放数据库 |

端口
本地端口不冲突就行,不确定的话可以用命令查一下
1 | # 查看端口占用 |
| 本地端口 | 容器端口 |
|---|---|
8340 |
8000 |
默认没有对外暴露端口

需要点 + 号自己添加

环境
| 可变 | 值 |
|---|---|
HOST_NAME |
设为 192.168.0.197,这是老苏群晖主机的 IP |
SECRET_KEY |
密码,可以改的复杂一点 |
CSRF_COOKIE_SECURE |
通过 HTTP 传输 CSRF cookie |
SESSION_COOKIE_SECURE |
通过 HTTP 传输 session cookie |
更多的环境变量,请参考官方文档:https://codeberg.org/mrmn/PdfDing#configuration

命令行安装
如果你熟悉命令行,可能用 docker cli 更快捷
1 | # 新建文件夹 pdfding 和 子目录 |
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
1 | version: '3' |
然后执行下面的命令
1 | # 新建文件夹 pdfding 和 子目录 |
运行
在浏览器中输入 http://群晖IP:8340 就能看到登录界面

普通用户
第一次需要点 Sign up 注册账号
密码不能少于
8位,不能太常见,不能全是数字等等

注册成功后的主界面
因为没有设置
smtp参数,所以是不会收到邮件的

点 Add PDF 添加文件,填写标题、描述和标签,然后点击 Sunmit 提交

上传成功

点标题可以查看 pdf 的内容

文件保存在 /media 目录中

移动端
在手机浏览器上登录

找到上传的 pdf

打开阅读 pdf 的速度挺快的,支持缩放操作

管理员
如果要创建管理员,需要进入容器操作
严格来说,是将已有的用户转为管理员,如果你输入的用户邮箱不存在,是会报错的
django.contrib.auth.models.User.DoesNotExist: User matching query does not exist.
1 | # 以 root 身份进入容器 |

现在可以访问 http://群晖IP:8340/admin,对用户,pdf 做一些增、删、改、查的操作

参考文档
mrmn/PdfDing: PdfDing is a selfhosted PDF manager and viewer offering a seamless user experience on multiple devices. It’s designed be to be minimal, fast, and easy to set up using Docker. - Codeberg.org
地址:https://codeberg.org/mrmn/PdfDing