在开始部署档案管理系统之前,必须确保服务器环境满足运行要求。本方案基于 Docker 容器化技术进行部署,以确保环境的一致性和迁移的便捷性。以下操作以 CentOS 7 或 Ubuntu 20.04 为例进行说明。
更新系统源并安装必要的依赖工具。执行以下命令安装 Docker:
CentOS 系统:
```bash sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker ```Ubuntu 系统:
```bash sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get install -y docker-ce docker-ce-cli containerd.io sudo systemctl start docker sudo systemctl enable docker ```接下来,安装 Docker Compose 插件。这是编排多容器应用的关键工具:
```bash sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker-compose --version ```为了规范管理,需创建专门的目录存放配置文件和数据。执行以下命令:
```bash mkdir -p /data/archivesystem/{consume,export,db,media} cd /data/archivesystem ```这里,consume 目录用于监听文件导入,export 用于导出文件,db 存储数据库数据,media 存储原始档案文件。
本方案采用开源且功能强大的 Paperless-ngx 作为核心档案管理引擎。它支持 OCR 识别、标签管理和全文检索,非常适合作为企业档案管理的底座。
在 /data/archivesystem 目录下创建 docker-compose.yml 文件,并写入以下完整配置。请注意,必须配置数据库密码和管理员凭证。
```yaml version: "3.5" services: broker: image: docker.io/library/redis:7 restart: always volumes: - ./redisdata:/data db: image: docker.io/postgres:15 restart: always volumes: - ./db:/var/lib/postgresql/data environment: POSTGRES_DB: paperless POSTGRES_USER: paperless POSTGRES_PASSWORD: paperless_db_pass_change_me healthcheck: test: ["CMD", "pg_isready", "-U", "paperless"] interval: 5s timeout: 5s retries: 5 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 - ./static:/usr/src/paperless/static env_file: - .env environment: PAPERLESS_REDIS: redis://broker:6379 PAPERLESS_DBHOST: db PAPERLESS_DBPASS: paperless_db_pass_change_me gotenberg: image: docker.io/gotenberg/gotenberg:7.7.1 restart: always command: - "gotenberg" - "--chromium-disable-javascript=true" - "--chromium-allow-list=file:///tmp/." tika: image: ghcr.io/paperless-ngx/tika:latest restart: always ```同目录下创建 .env 文件,用于设置系统级参数。这些参数直接影响系统的语言和 OCR 行为:
```bash 设置管理员用户名和密码(首次启动后生效) PAPERLESS_ADMIN_USER=admin PAPERLESS_ADMIN_PASSWORD=admin_secure_password 设置时区 PAPERLESS_TIME_ZONE=Asia/Shanghai 设置 OCR 语言包,支持中英文混合识别 PAPERLESS_OCR_LANGUAGE=chi_sim+eng 设置默认使用方向,提升自动纠错准确率 PAPERLESS_OCR_MODE=skip_no_text 禁用自动更新,保持生产环境稳定 PAPERLESS_ENABLE_UPDATE_CHECK=false ```配置文件就绪后,执行以下命令拉取镜像并启动容器:
```bash docker-compose up -d ```
首次启动需要下载 OCR 语言包和依赖库,耗时约 3-5 分钟。可以通过 docker-compose logs -f 查看实时日志。当看到 "Paperless-ngx is running at http://localhost:8000" 时,说明服务启动成功。
服务启动后,通过浏览器访问 http://服务器IP:8000。使用 .env 文件中配置的账号密码登录。
进入系统后,点击右上角 Settings -> Settings -> OCR。确保 OCR 设置正确。虽然 .env 中已配置语言,但建议在此处确认 OCR Language 显示为 chi_sim+eng。如果系统识别率低,可以调整 OCR Mode 为 force_ocr 强制重新识别所有文档。
在 Settings -> Settings -> Documents 中,配置 Original File Name 规则。建议选择 Keep original filename,以便于在导出或备份时快速识别文件。
系统部署完毕后,需要针对不同角色的用户设计实操培训流程。以下是分模块的实操指南,可直接作为培训手册使用。
此模块重点培训如何将物理档案转化为电子数据,并进行规范化分类。
此模块培训如何利用元数据快速定位档案,并设置自动化规则。
培训如何利用 Linux 文件系统进行批量归档,无需手动上传。
为了确保档案数据的绝对安全,必须配置自动备份策略。
创建 /data/archivesystem/backup.sh 脚本,实现每日增量备份:
```bash !/bin/bash DATE=$(date +%Y%m%d_%H%M%S) BACKUP_DIR="/data/archivesystem/backups" mkdir -p $BACKUP_DIR 备份数据库 docker-compose exec -T db pg_dump -U paperless paperless > $BACKUP_DIR/db_backup_$DATE.sql 备份媒体文件(增量或全量,此处演示压缩全量) tar -czf $BACKUP_DIR/media_backup_$DATE.tar.gz ./media 删除 7 天前的备份 find $BACKUP_DIR -name ".sql" -mtime +7 -exec rm {} \; find $BACKUP_DIR -name ".tar.gz" -mtime +7 -exec rm {} \; ```赋予执行权限:chmod +x backup.sh,并添加到 Crontab 中:0 2 /data/archivesystem/backup.sh。