PDF文档管理平台PDFManager

简介

什么是 PDFManager ?

PDFManager 是一个开源的自托管 PDF 文档管理平台。它可以帮助用户集中管理、注释和搜索 PDF 文档,支持多用户协作和 SSO 单点登录。

主要特点

  • 文档注释:支持在 PDF 页面上添加评论、高亮和标签,所有注释内容均可全文搜索
  • 库组织管理:支持嵌套文件夹、标签和收藏功能,可跟踪文件状态
  • 多用户支持:每个用户拥有独立的文档库,支持本地账户和 OIDC 单点登录
  • 协作共享:可以邀请其他用户访问任何集合,并支持权限管理
  • 全文搜索:支持搜索文件元数据、页面内容、注释内容和标签
  • 开源免费:基于 MIT 协议开源,可免费使用和修改

应用场景

  • 个人文档管理:将个人 PDF 文档集中管理,添加标签和注释,方便快速检索
  • 团队协作:团队成员共享文档集合,进行协作注释和讨论
  • 学术研究:管理研究论文,添加阅读笔记和标注
  • 企业知识库:建立企业内部文档知识库,支持多用户访问和权限控制
  • 开发者测试:开发人员可以快速搭建测试环境

PDFManager 是一个简单高效的自托管 PDF 管理解决方案,适合需要集中管理文档的个人和团队使用。

安装

在群晖上以 Docker 方式安装。

由于镜像托管在 ghcr.io,群晖 Docker 套件无法直接搜索,需要通过命令行拉取镜像。

本文写作时, latest 版本对应为 v0.4.1

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 新建文件夹 pdfmanager 和 子目录
mkdir -p /volume1/docker/pdfmanager/data

# 进入 pdfmanager 目录
cd /volume1/docker/pdfmanager

# 修改目录权限
chmod a+rw data

# 一键启动
docker run -d \
--name=pdfmanager \
--restart=unless-stopped \
-p 8216:8080 \
-v $(pwd)/data:/app/storage \
-e APP_ACCESS_JWT_SECRET=your_secret_here \
-e APP_REFRESH_JWT_SECRET=your_secret_here \
ghcr.io/g0rsthir/pdfmanager:latest

# 示例
docker run -d \
--name=pdfmanager \
--restart=unless-stopped \
-p 8216:8080 \
-v $(pwd)/data:/app/storage \
-e APP_ACCESS_JWT_SECRET=5b5e3c7a195c710efd07810014f7607fef8deb31e6f9b717b33343266a0a4367 \
-e APP_REFRESH_JWT_SECRET=64b6162818c6e3ab43e3ca292843feaa05659b09cbe28c83f17dd9043c817ac3 \
ghcr.io/g0rsthir/pdfmanager:latest

其中 APP_ACCESS_JWT_SECRETAPP_REFRESH_JWT_SECRET 可以用 openssl rand -hex 32 来生成

如果忘记了修改 data 目录的权限,会导致打开页面时报错

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: '3.8'

services:
app:
image: ghcr.io/g0rsthir/pdfmanager:latest
container_name: pdfmanager
restart: always
ports:
- "8216:8080"
volumes:
- ./data:/app/storage # 数据存储
environment:
- APP_ACCESS_JWT_SECRET=your_secret_here # JWT 访问令牌密钥
- APP_REFRESH_JWT_SECRET=your_secret_here # JWT 刷新令牌密钥

然后通过 SSH 登录到您的群晖,执行下面的命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 新建文件夹 pdfmanager 和 子目录
mkdir -p /volume1/docker/pdfmanager/data

# 进入 pdfmanager 目录
cd /volume1/docker/pdfmanager

# 修改目录权限
chmod a+rw data

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中访问 http://<群晖IP>:8216 即可进入 Web 界面。

首次使用需要创建管理员账户

登录后的主界面

移动到 Library 边上的三个竖点上,可以创建目录和收藏

老苏建了一个 测试 目录

然后就可以开始上传 pdf 文件

随便找了 2

可以在线阅读

注意事项

  1. JWT 密钥APP_ACCESS_JWT_SECRETAPP_REFRESH_JWT_SECRET 必须设置,建议使用强随机字符串
  2. 数据持久化PDF 文档存储在 /app/storage 卷中,确保定期备份
  3. 端口冲突:默认使用 8080 端口,如果被占用需要修改端口映射
  4. 安全建议:生产环境建议配置反向代理并启用 HTTPS

参考文档

G0rsthir/pdfmanager: Simple PDF manager - nothing more
地址:https://github.com/G0rsthir/pdfmanager

PDF Manager - Docker Image
地址:https://ghcr.io/g0rsthir/pdfmanager