首页
/ Papermerge文档管理系统Docker部署指南

Papermerge文档管理系统Docker部署指南

2025-07-10 07:11:08作者:幸俭卉

Papermerge是一个开源的文档管理系统,专注于提供高效的文档存储、检索和管理功能。本文将详细介绍如何使用Docker Compose部署Papermerge系统,帮助用户快速搭建自己的文档管理平台。

系统架构概述

Papermerge采用典型的微服务架构,在Docker Compose配置中主要包含以下组件:

  1. 应用服务(app):运行Papermerge主程序,基于Django框架构建
  2. 数据库服务(db):使用PostgreSQL作为数据存储
  3. 缓存服务(redis):提供高速缓存支持
  4. 工作节点(worker):处理后台异步任务

详细配置解析

1. 应用服务配置

app:
  image: eugenci/papermerge:2.0.0
  container_name: papermerge_app
  ports:
    - "8000:8000"
  depends_on:
    - db
    - redis
  volumes:
    - media_root:/opt/media
  environment:
    - DJANGO_SETTINGS_MODULE=config.settings.production
    - POSTGRES_USER=dbuser
    - POSTGRES_PASSWORD=dbpass
    - POSTGRES_DB=dbname
    - POSTGRES_HOST=db
    - POSTGRES_PORT=5432

关键配置说明:

  • 使用eugenci/papermerge:2.0.0镜像,这是官方维护的Papermerge 2.0.0版本
  • 将容器内的8000端口映射到主机的8000端口,可通过http://localhost:8000访问
  • 依赖数据库(db)和Redis服务,确保这些服务先启动
  • 挂载media_root卷用于存储上传的文档
  • 环境变量配置数据库连接参数

2. 数据库服务配置

db:
  image: postgres:12.3
  container_name: postgres_db
  volumes:
    - postgres_data7:/var/lib/postgresql/data/
  environment:
    - POSTGRES_USER=dbuser
    - POSTGRES_PASSWORD=dbpass
    - POSTGRES_DB=dbname

关键配置说明:

  • 使用PostgreSQL 12.3官方镜像
  • 挂载postgres_data7卷持久化存储数据库文件
  • 设置数据库用户、密码和数据库名称

3. Redis服务配置

redis:
  container_name: 'redis'
  image: 'redis:6'
  ports:
    - '127.0.0.1:6379:6379'
  volumes:
    - 'redisdata:/data'

关键配置说明:

  • 使用Redis 6官方镜像
  • 将Redis服务绑定到本地回环地址,增强安全性
  • 挂载redisdata卷持久化Redis数据

4. 工作节点配置

worker:
  image: eugenci/papermerge-worker:v2.0.0
  container_name: papermerge_worker
  volumes:
    - media_root:/opt/media
  environment:
    - DJANGO_SETTINGS_MODULE=config.settings.production
    - POSTGRES_USER=dbuser
    - POSTGRES_PASSWORD=dbpass
    - POSTGRES_DB=dbname
    - POSTGRES_HOST=db
    - POSTGRES_PORT=5432

关键配置说明:

  • 使用专门的worker镜像处理后台任务
  • 共享应用服务的media卷,确保能访问相同文件
  • 使用相同的数据库配置与应用服务通信

数据持久化配置

volumes:
  postgres_data7:
  media_root:
  redisdata:

系统使用三个命名卷确保数据持久化:

  1. postgres_data7:存储PostgreSQL数据库文件
  2. media_root:存储上传的文档和媒体文件
  3. redisdata:存储Redis缓存数据

部署步骤

  1. 确保已安装Docker和Docker Compose
  2. 将上述配置保存为docker-compose.yml文件
  3. 在文件所在目录执行:docker-compose up -d
  4. 等待所有容器启动完成
  5. 访问http://localhost:8000使用Papermerge系统

安全建议

  1. 生产环境中应修改默认的数据库凭据
  2. 考虑添加TLS/SSL加密
  3. 定期备份持久化卷数据
  4. 限制Redis服务的访问范围

常见问题

  1. 端口冲突:如果8000端口被占用,可修改ports配置为其他端口
  2. 初始化失败:检查数据库服务是否正常启动
  3. 文件上传问题:确认media_root卷有正确的写入权限

通过以上配置,用户可以快速部署一个功能完整的Papermerge文档管理系统,满足个人或小型团队的文档管理需求。