网站首页/ 信息中心/ 档案百科/

手把手搭建永久免费私有云档案管理系统实操

发布时间:2026年06月29日 22:25:15 浏览量:0

技术方案选型与架构说明

本文将指导你利用开源技术栈,从零构建一套功能完备的电子档案管理系统。我们选用的核心组件是 Paperless-ngx,这是一款基于 Django 开发的社区版文档管理工具,支持 OCR 文字识别、自动归档、标签管理,完全符合档案管理的核心需求。底层依赖 Docker 进行容器化部署,数据库使用 PostgreSQL,缓存队列使用 Redis。这套方案不仅永久免费,而且数据完全掌握在自己手中。

环境准备:安装 Docker 及 Docker Compose

在开始部署之前,需要确保服务器环境已安装 Docker 和 Docker Compose。以下命令适用于 CentOS 7/8 及 Ubuntu 20.04/22.04 系统。

卸载系统可能存在的旧版本 Docker:

```bash sudo yum remove docker docker-client docker-client-latest docker-common docker-latest-containerd docker-latest-logrotate docker-logrotate docker-engine ```

接着,使用阿里云镜像源安装 Docker,这能大幅提高国内环境的下载速度:

```bash sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io ```

启动 Docker 服务并设置开机自启:

```bash sudo systemctl start docker sudo systemctl enable docker ```

安装 Docker Compose 插件。对于较新的 Docker 版本,Compose 通常作为插件集成,但为了兼容性,我们单独安装 standalone 版本:

```bash sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker-compose --version ```

项目目录与配置文件创建

为了规范管理,我们在服务器根目录下创建专门的 project 目录,并规划好数据存储路径。执行以下命令:

```bash mkdir -p /data/paperless cd /data/paperless mkdir -p consume export data ```

/data/paperless 目录下,使用 vinano 编辑器创建 docker-compose.yml 文件。这是整个部署的核心配置文件,请直接复制以下完整内容,不要遗漏任何行:

```yaml version: "3.4" services: broker: image: docker.io/library/redis:7 restart: always volumes: - ./redis:/data db: image: docker.io/library/postgres:15 restart: always volumes: - ./postgres:/var/lib/postgresql/data environment: POSTGRES_USER: paperless POSTGRES_PASSWORD: paperless POSTGRES_DB: paperless webserver: image: ghcr.io/paperless-ngx/paperless-ngx:latest restart: always depends_on: - db - broker ports: - "8000:8000" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000"] interval: 30s timeout: 10s retries: 5 volumes: - ./data:/usr/src/paperless/data - ./media:/usr/src/paperless/media - ./export:/usr/src/paperless/export - ./consume:/usr/src/paperless/consume environment: PAPERLESS_REDIS: redis://broker:6379 PAPERLESS_DBHOST: db PAPERLESS_DBUSER: paperless PAPERLESS_DBPASS: paperless PAPERLESS_DBNAME: paperless PAPERLESS_OCR_LANGUAGE: chi_sim+eng PAPERLESS_OCR_MY_LANGUAGES: chi_sim,eng PAPERLESS_TIME_ZONE: Asia/Shanghai PAPERLESS_ADMIN_USER: admin PAPERLESS_ADMIN_PASSWORD: your_secure_password_here 取消注释以下行以启用中文界面 PAPERLESS_ALLOWED_LANGUAGES: en,zh-cn gotenberg: image: docker.io/gotenberg/gotenberg:7 restart: always volumes: - ./gotenberg:/gotenberg/data tika: image: docker.io/apache/tika:latest restart: always webserver: image: ghcr.io/paperless-ngx/paperless-ngx:latest restart: always depends_on: - db - broker - gotenberg - tika ports: - "8000:8000" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000"] interval: 30s timeout: 10s retries: 5 volumes: - ./data:/usr/src/paperless/data - ./media:/usr/src/paperless/media - ./export:/usr/src/paperless/export - ./consume:/usr/src/paperless/consume environment: PAPERLESS_REDIS: redis://broker:6379 PAPERLESS_DBHOST: db PAPERLESS_DBUSER: paperless PAPERLESS_DBPASS: paperless PAPERLESS_DBNAME: paperless PAPERLESS_OCR_LANGUAGE: chi_sim+eng PAPERLESS_TIME_ZONE: Asia/Shanghai PAPERLESS_ADMIN_USER: admin PAPERLESS_ADMIN_PASSWORD: admin123 PAPERLESS_URL: http://localhost:8000 PAPERLESS_CONSUMER_POLLING: 30 PAPERLESS_CONSUMER_RECURSIVE: true ```

配置详解:

启动服务与初始化

配置文件保存完毕后,在 /data/paperless 目录下执行以下命令拉取镜像并启动容器:

```bash docker-compose up -d ```

第一次启动需要下载镜像,大小约为 1GB 左右,请耐心等待。可以通过以下命令查看实时日志,确认服务是否正常启动:

```bash docker-compose logs -f webserver ```

手把手搭建永久免费私有云档案管理系统实操

当日志中出现 Application startup complete 字样时,说明服务已就绪。此时,打开浏览器访问 http://服务器IP:8000。使用配置文件中设置的用户名 admin 和密码 admin123 登录系统。

注意: 登录后请务必进入 Settings -> Users 界面,立即修改管理员密码以确保安全。

实操:档案录入与 OCR 识别

系统部署完成后,我们进行第一份档案的录入实操。

  1. 上传文档:点击界面右上角的 + Add documents 按钮,选择本地的 PDF 或图片文件进行上传。或者,直接将文件拖拽到页面中间的虚线框内。
  2. 查看处理状态:上传后,系统会自动进入“处理中”状态。点击左侧菜单的 Tasks,你可以看到 OCR 正在运行。由于我们配置了中文识别,如果文件页数较多,处理时间会相应延长。
  3. 验证识别结果:处理完成后,点击进入该文档详情页。右侧边栏会显示识别出的文本内容。你可以尝试复制一段文字,或者使用顶部的搜索框搜索文档内的关键字,验证全文检索功能是否生效。

实操:设置自动归档规则

档案管理的核心在于分类。Paperless-ngx 提供了强大的 Save rules(保存规则),可以根据文件名、OCR 内容、标签等属性自动打标签和归档。

假设我们需要将所有包含“合同”字样的文档自动归类到“法务部”文档类型下,并打上“重要”标签。操作步骤如下:

  1. 创建元数据
    • 进入 Settings -> Document types,点击 Add,创建名称为 法务部 的类型。
    • 进入 Settings -> Tags,点击 Add,创建名称为 重要 的标签,颜色设为红色。
  2. 配置规则
    • 进入 Settings -> Settings -> Document parsing rules
    • 点击 Add new rule
    • Rule name:输入“自动归档合同”。
    • Match:选择 TitleContent(OCR 内容),匹配模式选择 Contains,值输入 合同
    • Action:在 Assign document type 下拉框中选择 法务部
    • Action:在 Assign tag 下拉框中选择 重要
    • 点击 Save 保存规则。

现在,上传一份标题或内容包含“合同”的文档,系统将自动应用上述分类和标签,无需人工干预。

数据备份与恢复策略

为了保证档案数据的绝对安全,必须建立定期备份机制。我们需要备份数据库和文档文件两部分。

创建一个备份脚本 backup.sh

```bash !/bin/bash DATE=$(date +%Y%m%d_%H%M%S) BACKUP_DIR=/data/backup mkdir -p $BACKUP_DIR 备份数据库 docker exec paperless-db-1 pg_dump -U paperless paperless > $BACKUP_DIR/paperless_db_$DATE.sql 打包文档数据 tar -czvf $BACKUP_DIR/paperless_media_$DATE.tar.gz /data/paperless/media /data/paperless/data 删除7天前的备份 find $BACKUP_DIR -name ".sql" -mtime +7 -exec rm {} \; find $BACKUP_DIR -name ".tar.gz" -mtime +7 -exec rm {} \; ```

赋予执行权限并设置定时任务:

```bash chmod +x backup.sh crontab -e ```

添加以下行,实现每天凌晨 2 点自动备份:

```text 0 2 /data/paperless/backup.sh ```

常见问题排查

在实操过程中,可能会遇到 OCR 进程卡死或内存溢出的情况。可以通过以下方式调整:

档案软件物联网集成困难怎么办?三大实战策略破解集成瓶颈
档案软件物联网集成困难怎么办?三大实战策略破解集成瓶颈
在数字化转型浪潮中,档案管理系统与物联网技术的融合已成为提升管理效能的关键路径。许多企业在实践中常遭遇数据协议不匹配、系统架构冲突、实时性要求高等集成挑战,导致项目推进缓慢甚至失败。本文将深入剖析这些...
2026年06月29日 22:25:15
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818