使用 Docker / Docker Compose 部署 PdfDing —— 个人 PDF笔记

PdfDing 是一款开源的 PDF 文档管理与阅读工具 ,支持标签分类、全文检索、暗色主题等实用功能,非常适合用于搭建个人或小团队的 PDF 资料库。本文将手把手教你通过 两种主流方式 快速部署 PdfDing:

  • 方式一:docker run(适合快速体验)
  • 方式二:docker-compose(推荐用于长期使用)

一、环境准备

在开始部署前,请确保你的系统满足以下条件:

  • 操作系统:Linux / macOS / Windows(建议使用 WSL2)
  • 已安装 Docker ≥ 20.x
  • (可选)已安装 Docker Compose ≥ 2.x

验证 Docker 是否正常工作:

bash 复制代码
docker version

若未安装,请参考 Docker 官方安装指南


二、方式一:使用 docker run 快速启动(适合测试)

1️⃣ 启动命令

bash 复制代码
docker run --name pdfding \
  -p 8000:8000 \
  -v sqlite_data:/home/nonroot/pdfding/db \
  -v media:/home/nonroot/pdfding/media \
  -e HOST_NAME=127.0.0.1 \
  -e SECRET_KEY=some_secret \
  -e CSRF_COOKIE_SECURE=FALSE \
  -e SESSION_COOKIE_SECURE=FALSE \
  -d \
  mrmn/pdfding:latest

2️⃣ 参数说明

参数 说明
--name pdfding 容器名称,便于管理
-p 8000:8000 将容器的 8000 端口映射到宿主机
-v sqlite_data:/.../db 持久化 SQLite 数据库(避免重启丢失数据)
-v media:/.../media 持久化上传的 PDF 文件
HOST_NAME 设置访问地址(如 your-domain.com192.168.1.100
SECRET_KEY Django 应用密钥(生产环境务必更换为强随机字符串
CSRF_COOKIE_SECURE / SESSION_COOKIE_SECURE 是否仅在 HTTPS 下传输 Cookie(开发可设为 FALSE,生产应为 TRUE

3️⃣ 访问服务

打开浏览器,访问:

复制代码
http://127.0.0.1:8000

即可看到 PdfDing 的界面,开始上传和管理你的 PDF 文档!


三、方式二:使用 Docker Compose 部署(推荐 ✅)

Docker Compose 提供更清晰的配置结构,便于版本控制、备份和升级,强烈推荐用于日常使用或团队部署

1️⃣ 创建 docker-compose.yml

yaml 复制代码
version: "3.8"

services:
  pdfding:
    container_name: pdfding
    image: mrmn/pdfding:latest
    ports:
      - "8000:8000"
    volumes:
      - sqlite_data:/home/nonroot/pdfding/db
      - media:/home/nonroot/pdfding/media
    environment:
      # 主题设置
      - DEFAULT_THEME=${DEFAULT_THEME:-dark}
      - DEFAULT_THEME_COLOR=${DEFAULT_THEME_COLOR:-blue}

      # 安全与配置
      - SECRET_KEY=${SECRET_KEY:-change_me_to_a_strong_random_string}
      - HOST_NAME=${HOST_NAME:-127.0.0.1}

      # 生产环境建议启用 HTTPS 后设为 TRUE
      - CSRF_COOKIE_SECURE=${CSRF_COOKIE_SECURE:-FALSE}
      - SESSION_COOKIE_SECURE=${SESSION_COOKIE_SECURE:-FALSE}

    restart: unless-stopped

volumes:
  sqlite_data:
  media:

💡 建议同时创建 .env 文件管理敏感配置(如 SECRET_KEY),避免硬编码。

2️⃣ 启动服务

docker-compose.yml 所在目录执行:

bash 复制代码
docker compose up -d

查看运行状态:

bash 复制代码
docker compose ps

3️⃣ 访问应用

浏览器打开:

复制代码
http://127.0.0.1:8000

现在你拥有了一个功能完整的 PDF 管理平台!


四、常用运维命令

操作 命令
查看实时日志 docker logs -f pdfding
停止服务 docker compose down
更新到最新版 docker pull mrmn/pdfding:latest && docker compose up -d
备份数据 备份 sqlite_datamedia 卷(或挂载到宿主机路径)

五、生产环境安全建议(重要!)

如果你计划在内网或公网长期使用 PdfDing,请务必:

  1. 更换 SECRET_KEY :使用 openssl rand -hex 32 生成强密钥。

  2. 启用 HTTPS

    • 通过 Nginx + Let's Encrypt(公网)
    • 或使用私有 CA(如 step-ca,适用于内网)
  3. 设置安全 Cookie

    env 复制代码
    CSRF_COOKIE_SECURE=TRUE
    SESSION_COOKIE_SECURE=TRUE
  4. 限制访问 IP(如仅允许公司内网)

  5. 定期备份 dbmedia 数据卷


六、总结

部署方式 适用场景 推荐指数
docker run 临时测试、快速体验 ⭐⭐
docker-compose 日常使用、团队部署、生产环境 ⭐⭐⭐⭐⭐

PdfDing 轻量、开源、功能聚焦,是构建个人笔记的最佳选择。

相关推荐
Patrick_Wilson11 小时前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy20 小时前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭20 小时前
运行你的第一个Docker容器
后端·docker·容器
宋均浩2 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
程序员老赵3 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
WangMingHua1113 天前
LM Studio Docker 部署——本地大模型一键启动
docker
曲幽4 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
LinXunFeng4 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
武子康6 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
Alsn869 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker