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
  • 專案