Paperless-ngx 文档管理系统

项目标题与描述

Paperless-ngx 是一个文档管理系统,旨在将纸质文档转换为可搜索的电子档案,帮助用户减少纸张使用。它是原始 Paperless 和 Paperless-ng 项目的官方继承者,由团队共同维护和发展。

功能特性

  • 文档管理:将物理文档转换为可搜索的电子档案
  • 自动分类:基于内容自动分配文档类型、标签和对应关系
  • 全文检索:支持文档内容的全文搜索
  • 多种文件格式支持:包括 PDF、PNG、JPG、TIFF 等
  • 加密存储:支持使用 GPG 加密文档
  • 工作流管理:支持自定义文档处理工作流
  • 多用户支持:支持权限管理和多用户协作
  • REST API:提供完整的 API 接口供集成使用
  • 插件系统:支持通过插件扩展功能(如条形码识别、双面扫描处理等)

安装指南

系统要求

  • Docker 和 Docker Compose
  • Python 3.10-3.12

安装步骤

  1. 克隆项目仓库:

    git clone https://github.com/paperless-ngx/paperless-ngx.git
    cd paperless-ngx
    
  2. 复制并修改环境配置文件:

    cp docker-compose.env.yml.example docker-compose.env.yml
    
  3. 启动服务:

    docker-compose up -d
    
  4. 访问应用:

    http://localhost:8000
    

依赖项

  • Redis
  • PostgreSQL
  • Gotenberg(用于文档转换)
  • Apache Tika(用于文本提取)

使用说明

基本使用

  1. 添加文档

    • 通过 Web 界面上传文档
    • 使用消费目录自动导入文档
  2. 文档分类

    • 系统会自动根据内容分类文档
    • 可手动调整分类结果
  3. 搜索文档

    • 使用搜索框查找文档
    • 支持高级搜索和过滤

API 使用示例

import requests

# 获取文档列表
response = requests.get("http://localhost:8000/api/documents/", 
                       auth=("username", "password"))
documents = response.json()

# 上传新文档
files = {
   
   "document": open("example.pdf", "rb")}
response = requests.post("http://localhost:8000/api/documents/post_document/",
                         files
### Paperless-ngx 使用指南和技术文档 #### 一、概述 Paperless-ngx 是一款强大的开源文档管理系统,专注于将纸质文档数字化并提供高效的检索能力。其核心功能包括支持多种文件格式(PDF、图片、Office 文档等)、集成 OCR 技术以及云端或本地化的存储方案[^1]。 为了更好地理解和使用 Paperless-ngx,以下是关于该系统的常见配置和操作说明: --- #### 二、安装与部署 ##### 1. 基于 Docker 的快速部署 Docker 提供了一种简单的方式来运行 Paperless-ngx。如果遇到官方镜像下载速度较慢的情况,可以选择国内加速源替代默认地址[^3]。具体命令如下: ```bash docker pull swr.cn-north-4.myhuaweicloud.com/jeven/paperless-ngx:latest ``` 完成镜像拉取后,可以通过 `docker-compose` 文件定义服务依赖关系。以下是一个典型的 `docker-compose.yml` 配置示例[^4]: ```yaml version: '3' services: db: image: mariadb:10.5 restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: paperless MYSQL_USER: paperless MYSQL_PASSWORD: paperless volumes: - db_data:/var/lib/mysql broker: image: redis:alpine restart: unless-stopped webserver: image: ghcr.io/paperless-ngx/paperless-ngx:latest restart: unless-stopped 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_DBENGINE: mariadb PAPERLESS_DBHOST: db PAPERLESS_DBUSER: paperless PAPERLESS_DBPASS: paperless PAPERLESS_DBPORT: 3306 volumes: db_data: data: media: ``` 启动容器时执行以下命令即可: ```bash docker-compose up -d ``` --- #### 三、基本使用方法 ##### 1. 添加文档 用户可通过 Web 界面上传新文档或将文件放置到指定的消费目录 (`./consume`) 中。系统会自动处理这些文件,并将其转化为可搜索的内容[^2]。 ##### 2. 搜索功能 Paperless-ngx 支持全文检索,允许用户输入关键词来定位目标文档。这得益于内置的 OCR 工具对扫描件的文字提取能力。 ##### 3. 自动分类 通过设置标签规则,可以实现新增文档的自动化归类。例如,基于文件名模式匹配特定类别。 --- #### 四、高级定制选项 对于有更高需求的技术人员来说,还可以进一步调整参数以优化性能表现或者扩展功能性。比如修改数据库连接字符串、Redis 地址以及其他环境变量值均需编辑对应的 YAML 定义部分。 --- #### 五、常见问题排查 当遇到无法访问前端页面或其他异常状况时,请依次检查以下几个方面: - **网络连通性**:确认宿主机端口映射正常工作。 - **日志分析**:查看各子服务的日志输出寻找错误提示信息。 - **资源占用情况**:确保硬件资源配置充足满足应用运行所需条件。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值