Papermerge文档管理系统Docker部署指南
2025-07-10 07:11:08作者:幸俭卉
Papermerge是一个开源的文档管理系统,专注于提供高效的文档存储、检索和管理功能。本文将详细介绍如何使用Docker Compose部署Papermerge系统,帮助用户快速搭建自己的文档管理平台。
系统架构概述
Papermerge采用典型的微服务架构,在Docker Compose配置中主要包含以下组件:
- 应用服务(app):运行Papermerge主程序,基于Django框架构建
- 数据库服务(db):使用PostgreSQL作为数据存储
- 缓存服务(redis):提供高速缓存支持
- 工作节点(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:
系统使用三个命名卷确保数据持久化:
postgres_data7
:存储PostgreSQL数据库文件media_root
:存储上传的文档和媒体文件redisdata
:存储Redis缓存数据
部署步骤
- 确保已安装Docker和Docker Compose
- 将上述配置保存为
docker-compose.yml
文件 - 在文件所在目录执行:
docker-compose up -d
- 等待所有容器启动完成
- 访问
http://localhost:8000
使用Papermerge系统
安全建议
- 生产环境中应修改默认的数据库凭据
- 考虑添加TLS/SSL加密
- 定期备份持久化卷数据
- 限制Redis服务的访问范围
常见问题
- 端口冲突:如果8000端口被占用,可修改
ports
配置为其他端口 - 初始化失败:检查数据库服务是否正常启动
- 文件上传问题:确认
media_root
卷有正确的写入权限
通过以上配置,用户可以快速部署一个功能完整的Papermerge文档管理系统,满足个人或小型团队的文档管理需求。