eikek/docspell

Assist in organizing your piles of documents, resulting from scanners, e-mails and other sources with miminal effort.

Docspell – 个人文档管理系统

是什么

  • 面向家庭、家庭成员和小团队的开源文档管理系统(DMS)。帮助您存储、组织和检索扫描的纸质文件、电子邮件及其他数字文档。

为何重要

  • 个人文档管理系统最大的痛点在于添加有用的元数据(如文档来源、日期、标签等)。Docspell 使用 Stanford CoreNLP 自动建议发件人、提取日期、推测标签并执行全文搜索,从而减少手动工作量。换句话说,它将轻量级自然语言处理引入家庭办公工作流。

核心功能

  • 自动元数据提取 – 基于 NLP 的标签、日期和发件人建议。
  • OCR 流水线 – 集成 tesseractocrmypdfunoconv,将扫描图像转换为可搜索的 PDF。
  • 全文搜索 – 基于提取的文本。
  • REST/HTTP API – 所有功能均可通过程序访问。
  • Web UI – 使用 Elm 和 Tailwind CSS 构建的移动端友好的单页应用。
  • Android 客户端 – 从手机/平板快速上传。
  • CLI 工具(dsc – 为高级用户提供命令行访问。
  • Docker、Debian 包、Nix、Helm – 多种便捷安装方式。

工作原理(概览)

  1. 摄入 – 通过 Web UI、Android 应用、CLI 或 API 将文件(扫描件、PDF、邮件附件)放入系统。
  2. 处理 – 如需,Docspell 执行 OCR,然后将文本传递给 Stanford CoreNLP。
  3. 元数据推断 – NLP 步骤提取实体(人物、组织、日期),并提出标签建议。
  4. 存储与索引 – 文档及其元数据存储在 PostgreSQL 数据库中;全文索引支持快速搜索。
  5. 检索 – 可以浏览、按标签/发件人过滤,或通过自由文本搜索。

技术栈

  • 后端 – 使用 Scala(函数式风格)和 Typelevel 生态系统(Cats、FS2、Doobie、Http4s、Circe、Pureconfig)。ML/NLP 由外部 Stanford-NLP 库处理;OCR 依赖 tesseractocrmypdfunoconv
  • 前端 – 使用 Elm 构建的 SPA,采用 Tailwind CSS 进行样式设计。
  • 部署 – Docker 镜像(REST 服务器、UI、工作器)、Debian .deb、Nix 包、Kubernetes 用 Helm 图表。

快速开始

# 快速 Docker 启动(3 条命令)
git clone https://github.com/docspell/docker docspell-docker
 cd docspell-docker/docker-compose
docker-compose up -d

然后打开 http://localhost:7880,创建一个集合/用户(首次运行时使用相同名称即可),开始上传文档。

许可证

  • AGPL-v3(或更新版本),即使作为服务提供,软件也保持免费且源码开放。

谁可能使用它

  • 希望将收据、合同、信件等建立可搜索归档的家庭用户。
  • 需要低成本、自托管 DMS 并具备一定智能辅助功能的小型办公室或非营利组织。
  • 寻找基于 Scala 的 NLP/ML 集成到生产服务示例的开发者。

以上所有信息均直接来自项目的 README。

相关

  • 项目
  • 项目
  • 项目
  • Dispatch
  • 项目