本指南基于Ubuntu 22.04 LTS系统编写,利用Docker容器化技术进行部署,确保环境隔离且易于维护。在开始之前,请确保你拥有一台具有sudo权限的服务器或本地虚拟机。
执行以下命令更新系统源并安装必要的依赖工具:
sudo apt-get update
sudo apt-get install -y curl git python3-pip
接下来,安装Docker及Docker Compose。为了保证版本的稳定性,我们使用官方源进行安装:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
注意:执行完用户组修改后,必须注销当前用户并重新登录,或者执行以下命令使权限生效,否则后续操作会报错:
newgrp docker
安装Docker Compose插件:
sudo apt-get install -y docker-compose-plugin
为了规范管理,我们在用户目录下创建一个专门的文件夹用于存放档案系统的配置和数据。执行以下命令:
mkdir -p ~/paperless/data
mkdir -p ~/paperless/media
mkdir -p ~/paperless/export
mkdir -p ~/paperless/consume
cd ~/paperless
进入目录后,我们需要创建核心配置文件docker-compose.yml。该文件定义了数据库、缓存、Web服务以及文档处理所需的各个组件。请直接复制以下完整内容并保存:
version: "3.8"
services:
broker:
image: docker.io/library/redis:7
restart: always
volumes:
- ./redisdata:/data
db:
image: docker.io/library/postgres:15
restart: always
volumes:
- ./dbdata:/var/lib/postgresql/data
environment:
POSTGRES_DB: paperless
POSTGRES_USER: paperless
POSTGRES_PASSWORD: paperless
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
env_file:
- .env
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db
PAPERLESS_TIKA_ENABLED: 1
PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000
PAPERLESS_TIKA_ENDPOINT: http://tika:9998
gotenberg:
image: docker.io/gotenberg/gotenberg:7
restart: always
tika:
image: docker.io/apache/tika:latest
restart: always
consumer:
image: ghcr.io/paperless-ngx/paperless-ngx:latest
restart: always
depends_on:
- db
- broker
- webserver
volumes:
- ./data:/usr/src/paperless/data
- ./media:/usr/src/paperless/media
- `./export:/usr/src/paperless/export`
- ./consume:/usr/src/paperless/consume
env_file:
- .env
environment:
PAPERLESS_REDIS: redis://broker:6379
PAPERLESS_DBHOST: db
PAPERLESS_CONSUMER_ENABLED: true
紧接着,在同级目录下创建环境变量文件.env。该文件用于设置系统管理员账号、时区及访问地址。请务必修改PAPERLESS_ADMIN_PASSWORD的值:
PAPERLESS_ADMIN_USER=admin
PAPERLESS_ADMIN_PASSWORD=your_secure_password_here
PAPERLESS_URL=http://localhost:8000
PAPERLESS_TIMEZONE=Asia/Shanghai
PAPERLESS_OCR_LANGUAGE=chi_sim+eng
配置详解:PAPERLESS_OCR_LANGUAGE设置为chi_sim+eng,意味着系统将自动对上传的文档进行中文简体和英文的OCR识别,这是实现档案全文检索的关键步骤。
配置文件准备就绪后,执行以下命令拉取镜像并启动所有容器:
docker compose up -d
首次启动需要下载镜像,请耐心等待。可以通过以下命令查看服务运行状态,确保所有服务均为Up状态:
docker compose ps
启动成功后,打开浏览器,访问http://服务器IP:8000。你将看到登录界面,使用.env文件中配置的PAPERLESS_ADMIN_USER和PAPERLESS_ADMIN_PASSWORD进行登录。
登录系统后,首要任务是录入档案。Paperless-ngx支持Web界面上传和文件夹监视两种方式。
点击界面右上角的“上传文档”按钮。在弹出的对话框中,点击“选择文件”按钮,选择本地的PDF、图片或Word文档。

上传后,文档会自动进入处理队列。系统会自动调用配置的Tika和Gotenberg服务进行文档转换,并调用Tesseract OCR引擎提取文字。
验证OCR效果:等待几秒钟后,文档列表会刷新。点击文档标题进入详情页,在右侧边栏可以看到“已识别文本”区域。如果原本是图片格式的扫描件,这里应该显示出完整的可编辑文字内容。
对于大批量历史档案,使用监视文件夹更高效。只需将文件拷贝至宿主机的~/paperless/consume目录下:
cp /path/to/your/archive.pdf ~/paperless/consume/
系统中的consumer容器会实时检测该目录,一旦发现新文件,会自动将其抓取、处理并存入数据库,处理完成后原文件会被自动删除。
为了方便后续检索,必须建立规范的元数据体系。在左侧导航栏中,依次进入“设置”->“文档类型”和“标签”。
点击“添加文档类型”,输入如“合同”、“发票”、“人事档案”等名称。在录入文档时,可以直接勾选对应的类型。
标签比文档类型更灵活。建议创建“年份”、“部门”、“密级”等维度的标签。例如,创建一个“2023年”的标签,并设置为蓝色,以便在列表中快速识别。
保存文档时的操作:在上传或查看文档时,点击右侧的“编辑”按钮。在弹出的面板中,不仅可以修改标题,还可以关联文档类型、打上标签,并设置“归档路径”。归档路径是一个虚拟的文件夹结构,例如财务/2023/发票,这不会改变物理存储位置,但会在浏览视图中形成层级结构。
手动分类效率较低,我们可以配置自动匹配规则。点击左侧导航栏的“设置”->“自动匹配规则”。
点击“添加自动匹配规则”,假设我们要将所有标题包含“报销”的文档自动打上“财务”标签:
报销保存规则后,系统会立即对现有文档进行一次扫描,未来上传的新文档也会在处理完成后自动应用此规则。
档案数据的安全性至关重要。我们需要定期备份数据库和文件存储目录。
创建一个备份脚本backup.sh:
!/bin/bash
BACKUP_DIR=~/backups
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
备份数据库
docker compose exec -T db pg_dump -U paperless paperless > $BACKUP_DIR/paperless_db_$DATE.sql
备份媒体文件和数据配置
tar -czf $BACKUP_DIR/paperless_data_$DATE.tar.gz ./data ./media
echo "Backup completed: $BACKUP_DIR"
执行chmod +x backup.sh赋予执行权限,并运行./backup.sh即可生成完整的备份包。
若需恢复,首先停止服务,解压数据文件,然后导入数据库:
docker compose down
tar -xzf ~/backups/paperless_data_DATE.tar.gz -C ~/
docker compose up -d
docker compose exec -T db psql -U paperless paperless < ~/backups/paperless_db_DATE.sql
通过以上步骤,你已经完成了一套企业级电子档案管理系统的搭建、配置、实操录入及安全备份。这套系统完全开源免费,支持中文OCR,能够满足绝大多数中小型机构的档案数字化需求。
档案整理行业认证,这玩意儿到底是不是你的职场“硬通货”?