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 流水線 – 整合 tesseract、ocrmypdf 與 unoconv,將掃描影像轉換為可搜尋的 PDF。
- 全文搜尋 – 基於提取的文本。
- REST/HTTP API – 所有功能皆可程式化存取。
- Web UI – 使用 Elm 與 Tailwind CSS 建構的行動友善單頁應用程式。
- Android 客戶端 – 從手機/平板快速上傳。
- CLI 工具(
dsc) – 為進階使用者提供命令列存取。 - Docker、Debian 套件、Nix、Helm – 多種便捷安裝方式。
運作方式(概覽)
- 輸入 – 透過 Web UI、Android 應用、CLI 或 API 將檔案(掃描件、PDF、電子郵件附件)放入系統。
- 處理 – 如有必要,Docspell 執行 OCR,然後將文字傳遞給 Stanford CoreNLP。
- 元資料推論 – NLP 步驟提取實體(人物、組織、日期),並提出標籤建議。
- 儲存與索引 – 文件及其元資料儲存在 PostgreSQL 資料庫中;全文索引支援快速搜尋。
- 檢索 – 可瀏覽、依標籤/發件人過濾,或以自由文字搜尋。
技術堆疊
- 後端 – 使用 Scala(函數式風格)與 Typelevel 生態系(Cats、FS2、Doobie、Http4s、Circe、Pureconfig)。ML/NLP 由外部 Stanford-NLP 套件處理;OCR 依賴 tesseract、ocrmypdf 與 unoconv。
- 前端 – 使用 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
- 專案