基于Docker构建小微企业数字档案馆系统实操指南

第一步:环境准备与基础依赖安装

本方案基于Ubuntu 22.04 LTS系统构建,利用Docker容器化技术实现一键部署,确保环境隔离与迁移便捷。首先执行以下命令更新系统源并安装必要组件。

打开终端,依次执行以下命令:

```bash sudo apt-get update sudo apt-get install -y curl git python3-pip ```

接着安装Docker与Docker Compose。此处直接使用官方安装脚本以确保版本最新且兼容性最好:

```bash curl -fsSL https://get.docker.com | sh sudo usermod -aG docker $USER ```

执行完用户组修改后,必须注销当前用户并重新登录,以确保后续命令无需sudo权限即可执行。安装Docker Compose插件:

```bash sudo apt-get install -y docker-compose-plugin ```

第二步:系统目录结构规划

为了防止系统重装导致数据丢失,建议将数据持久化目录挂载在独立的数据盘或根目录下的专用文件夹中。执行以下命令创建项目目录结构:

```bash sudo mkdir -p /data/paperless/{consume,export,data,db,media,redis} sudo chown -R $USER:$USER /data/paperless cd /data/paperless ```

目录用途说明:

  • consume:监听目录,放入此文件夹的文件会被自动导入并归档。
  • export:导出目录,用于存放系统导出的原始文件。
  • data:存放索引数据及配置文件。
  • db:PostgreSQL数据库文件持久化目录。
  • media:存放文档原文及处理后的预览图。
  • redis:缓存服务数据目录。

第三步:核心配置文件编写

/data/paperless目录下创建docker-compose.yml文件。该文件定义了Web服务、数据库、缓存、OCR任务队列及文档转换服务。请直接复制以下完整配置:

```yaml version: "3.8" services: broker: image: docker.io/library/redis:7 restart: always volumes: - ./redis:/data db: image: docker.io/library/postgres:15 restart: always volumes: - ./db:/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" volumes: - ./data:/usr/src/paperless/data - ./media:/usr/src/paperless/media - ./export:/usr/src/paperless/export - ./consume:/usr/src/paperless/consume env_file: - .env healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000"] interval: 30s timeout: 10s retries: 5 gotenberg: image: docker.io/gotenberg/gotenberg:7 restart: always environment: - DISABLE_GOOGLE_CHROME=1 command: - "gotenberg" - "--chromium-disable-javascript=true" - "--chromium-allow-list=file:///tmp/." tika: image: apache/tika:latest restart: always ```

在同目录下创建环境变量配置文件.env。此文件包含系统核心参数,请务必修改管理员密码

```bash cat > .env <第四步:容器启动与OCR环境配置

配置文件就绪后,执行以下命令拉取镜像并启动服务:

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

首次启动需要下载镜像,请耐心等待。启动后,执行以下命令查看容器状态,确保所有服务均为Up (healthy)状态:

```bash docker compose ps ```

若Web服务显示 unhealthy,请使用docker compose logs -f webserver查看日志。通常是因为数据库初始化未完成,稍等片刻即可恢复。

基于Docker构建小微企业数字档案馆系统实操指南

系统默认包含英文OCR模型,为了精准识别中文文档,需要进入容器下载中文语言包:

```bash docker exec -it paperless-webserver-1 bash ```

进入容器终端后执行:

```bash apt-get update && apt-get install -y tesseract-ocr-chi-sim exit ``>

下载完成后,重启Web服务以生效:

```bash docker compose restart webserver ```

第五步:业务流程实操与文档归档

浏览器访问http://服务器IP:8000,使用.env文件中配置的PAPERLESS_ADMIN_USERPAPERLESS_ADMIN_PASSWORD登录。

登录后首先进行文档类型设置。点击左侧导航栏“Settings” -> “Document Types”,点击“Add”创建类型,例如“发票”、“合同”、“人事档案”等,这有助于后续分类检索。

接着配置保存路径。在“Settings” -> “Document Settings”中,可以设置文件名的命名规则,例如{created_year}/{created_month}/{title},这会在导出或存储时自动建立文件夹结构。

实操归档:将一份PDF或图片文件上传至服务器/data/paperless/consume目录。系统会自动检测该文件,执行OCR识别,提取元数据,并将其移动至归档库。此时在Web界面“Documents”页面即可看到该文档。

点击文档进入详情页,系统会自动显示OCR识别后的文本内容。可以在右侧边栏手动添加“Tags”(标签)或关联“Correspondent”(往来单位)。例如,给某张发票打上“2023年度”和“待报销”的标签。

第六步:数据备份与恢复策略

对于小微企业,数据安全至关重要。编写一个简单的备份脚本backup.sh放在/data/paperless目录下:

```bash cat > backup.sh <<'EOF' !/bin/bash BACKUP_DIR="/data/paperless/backups" DATE=$(date +%Y%m%d_%H%M%S) mkdir -p $BACKUP_DIR 备份数据库 docker exec paperless-db-1 pg_dump -U paperless paperless > $BACKUP_DIR/db_$DATE.sql 打包数据与媒体文件 tar -czf $BACKUP_DIR/data_media_$DATE.tar.gz ./data ./media 删除7天前的备份 find $BACKUP_DIR -type f -mtime +7 -delete EOF chmod +x backup.sh ```

手动执行./backup.sh即可测试备份。建议将其加入系统的Crontab定时任务,例如每天凌晨2点执行:

```bash crontab -e ```

添加以下内容:

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

恢复数据时,只需先停止服务,解压data_media文件覆盖原目录,然后导入数据库文件即可:

```bash docker compose stop tar -xzf /data/paperless/backups/data_media_20230101_020000.tar.gz -C /data/paperless/ docker exec -i paperless-db-1 psql -U paperless paperless < /data/paperless/backups/db_20230101_020000.sql docker compose start ```
AI咨询
热线电话

028-85154420

15388110056

全国售前咨询电话

扫码咨询
安答联动微信公众号二维码

微信扫码关注安答联动

申请试用
热线电话
申请试用

安答联动档案管理系统