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 更快捷

bash 复制代码
# 新建文件夹 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 文件

yaml 复制代码
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 登录到您的群晖,执行下面的命令:

bash 复制代码
# 新建文件夹 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

相关推荐
程序员老赵1 天前
Docker 部署 Redmine:老牌开源项目管理部署实测记录
docker·开源·团队管理
程序员老赵1 天前
服务器文件不想 SFTP 上传?Docker 跑个 File Browser,浏览器就能管理
服务器·docker·开源
lichenyang4533 天前
Docker 学习笔记(五):Docker Compose,用一个 YAML 启动前端、后端和 MongoDB
docker
lichenyang4533 天前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang4533 天前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器
lichenyang4533 天前
Docker 学习笔记(二):docker run 的参数到底在控制什么?
docker·容器
Patrick_Wilson8 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy8 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭8 天前
运行你的第一个Docker容器
后端·docker·容器
宋均浩9 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker