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

小微企业自建档案管理系统零成本实操指南

发布时间:2026年08月29日 16:00:24 浏览量:0

方案选型与技术栈说明

针对小微企业档案管理需求,商业软件授权费用高且二次开发困难。本文采用开源技术栈,基于Docker容器化部署Paperless-ngx系统。该方案支持OCR文字识别、自动标签归档、全文检索,完全满足小微企业合同、发票、人事档案数字化管理需求,且无需支付任何授权费用。

技术栈构成:

环境准备

本指南以Ubuntu 22.04 LTS为例,其他Linux发行版命令略有差异。请确保拥有一台拥有公网IP的服务器或内网虚拟机,配置建议为2核4G内存,硬盘空间根据档案量自行配置。

安装Docker与Docker Compose

首先更新系统源并安装必要依赖:

```bash sudo apt-get update sudo apt-get install -y ca-certificates curl gnupg lsb-release ```

添加Docker官方GPG密钥:

```bash sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg ```

设置Docker仓库并安装:

```bash echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin ```

验证安装是否成功:

```bash docker --version docker compose version ```

部署实施

创建项目目录结构

为了数据持久化,我们需要在宿主机创建目录挂载到容器中。执行以下命令:

```bash mkdir -p ~/paperless/data mkdir -p ~/paperless/media mkdir -p ~/paperless/export mkdir -p ~/paperless/consume mkdir -p ~/paperless/db cd ~/paperless ```

编写Docker Compose配置文件

~/paperless目录下创建docker-compose.yml文件,内容如下。该配置已包含中文OCR优化设置:

```yaml services: broker: image: docker.io/library/redis:7-alpine container_name: paperless_broker restart: always volumes: - ./redisdata:/data db: image: docker.io/library/postgres:15 container_name: paperless_db 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 container_name: paperless_webserver 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 - ./fonts:/usr/share/fonts environment: PAPERLESS_REDIS: redis://broker:6379 PAPERLESS_DBHOST: db PAPERLESS_DBUSER: paperless PAPERLESS_DBPASS: paperless PAPERLESS_DBPORT: 5432 PAPERLESS_OCR_LANGUAGE: chi_sim+eng PAPERLESS_OCR_LANGUAGES: chi_sim,eng PAPERLESS_TIME_ZONE: Asia/Shanghai PAPERLESS_ADMIN_USER: admin PAPERLESS_ADMIN_PASSWORD: your_secure_password PAPERLESS_URL: http://localhost:8000 gotenberg: image: docker.io/gotenberg/gotenberg:7 container_name: paperless_gotenberg restart: always command: - "gotenberg" - "--chromium-disable-javascript=true" - "--chromium-allow-list=file:///tmp/." tika: image: ghcr.io/paperless-ngx/tika:latest container_name: paperless_tika restart: always ```

配置中文OCR支持

默认镜像可能不包含完整的中文训练数据。我们需要下载中文字体和语言包以确保识别准确率。在~/paperless目录下执行:

```bash 创建字体目录 mkdir -p ./fonts 下载中文字体(以思源黑体为例) wget https://github.com/adobe-fonts/source-han-sans/raw/release/SubsetOTF/CN/SourceHanSansCN-Regular.otf -O ./fonts/SourceHanSansCN-Regular.otf 下载Tesseract中文训练数据 wget https://github.com/tesseract-ocr/tessdata/raw/main/chi_sim.traineddata -O ./data/chi_sim.traineddata ```

启动服务与初始化

启动容器

~/paperless目录下执行以下命令拉取镜像并启动所有服务:

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

查看容器运行状态,确保所有服务均为Up状态:

```bash docker compose ps ```

初始化管理员账户

小微企业自建档案管理系统零成本实操指南

虽然我们在配置文件中设置了环境变量,但建议首次进入后手动修改密码。如果配置文件中未设置PAPERLESS_ADMIN_USER,可以使用以下命令创建:

```bash docker compose run --rm webserver createsuperuser ```

按照提示输入用户名、邮箱和密码。

系统配置与使用

启动完成后,通过浏览器访问http://服务器IP:8000

配置保存路径

登录后,点击右上角头像 -> Settings -> Settings -> Documents

设置自动归档规则

这是档案自动化的核心。进入Settings -> Settings -> Automation

  1. 点击Create new automation rule
  2. Match title: 输入匹配规则,如Invoice_.(匹配所有以Invoice_开头的文件)。
  3. Assign tag: 选择或创建"财务发票"标签。
  4. Assign document type: 选择"发票"。
  5. 点击Save

此后,上传文件名匹配规则的文档时,系统会自动打标并归档。

文档上传与OCR测试

  1. 点击界面左侧的Upload Documents
  2. 拖拽一张包含中文的PDF或图片文件。
  3. 等待几秒钟,系统会自动进行OCR识别。
  4. 点击进入文档详情页,右侧会显示识别出的文字内容。在顶部搜索框输入任意识别出的文字,即可检索到该文档。

数据备份与恢复策略

小微企业必须重视数据安全。我们编写一个简单的备份脚本,将数据库和文档文件打包。

编写备份脚本

创建backup.sh

```bash !/bin/bash BACKUP_DIR="/root/paperless_backups" DATE=$(date +%Y%m%d_%H%M%S) SOURCE_DIR="/root/paperless" mkdir -p $BACKUP_DIR 备份数据库 docker compose exec -T db pg_dump -U paperless paperless > $BACKUP_DIR/db_dump_$DATE.sql 打包数据与媒体文件 tar -czf $BACKUP_DIR/paperless_data_$DATE.tar.gz $SOURCE_DIR/media $SOURCE_DIR/export $SOURCE_DIR/data 删除7天前的备份 find $BACKUP_DIR -type f -mtime +7 -delete echo "Backup completed: $DATE" ```

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

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

添加每天凌晨2点执行备份:

```text 0 2 /root/paperless/backup.sh >> /var/log/paperless_backup.log 2>&1 ```

常见维护操作

更新系统版本

Paperless-ngx更新频繁,获取新功能和Bug修复:

```bash cd ~/paperless docker compose pull docker compose up -d docker compose exec webserver python3 manage.py migrate ```

清理未使用的文档

如果误上传或需要清理测试数据,不要直接删除media目录下的文件,这会导致数据库不一致。应在Web界面删除文档,或使用命令:

```bash docker compose run --rm webserver document_management_manager clear_media ```

查看日志排查错误

如果OCR失败或上传报错,查看Web服务日志:

```bash docker compose logs -f webserver ```
档案公积金培训:别让这些“小事”悄悄偷走你的钱
档案公积金培训:别让这些“小事”悄悄偷走你的钱
你是不是也觉得,档案、公积金、培训这些词,听着就头大?每次听到都自动跳过,想着“以后再说”。结果呢,档案在自己手里放成了“死档”,公积金账户里有多少钱、怎么用一问三不知,公司提供的免费培训机会也从来没...
2026年08月29日 16:00:24
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818