eikek/docspell

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

Docspell – 개인 문서 관리 시스템

무엇인가요

  • 가정, 가족, 소규모 팀을 위한 오픈소스 DMS입니다. 스캔한 문서, 이메일, 기타 디지털 문서를 저장하고 정리하며 검색할 수 있도록 도와줍니다.

왜 중요한가요

  • 개인용 DMS의 가장 큰 문제점은 유용한 메타데이터(누가 보낸 문서인지, 날짜, 태그 등)를 수동으로 추가하는 것입니다. Docspell은 Stanford CoreNLP를 사용해 자동으로 발신자, 날짜 추출, 태그 추측, 전체 텍스트 검색을 제안함으로써 이 수작업을 줄입니다. 즉, 가정 및 사무실 워크플로우에 가벼운 자연어 처리 기능을 제공합니다.

주요 기능

  • 자동 메타데이터 추출 – NLP 기반의 태그, 날짜, 발신자 제안.
  • OCR 파이프라인tesseract, ocrmypdf, unoconv를 통합하여 스캔 이미지를 검색 가능한 PDF로 변환.
  • 전체 텍스트 검색 – 추출된 텍스트 기반.
  • REST/HTTP API – 모든 기능을 프로그래밍 방식으로 접근 가능.
  • 웹 UI – Elm과 Tailwind CSS로 구축된 모바일 친화적 싱글페이지 애플리케이션.
  • Android 클라이언트 – 스마트폰/태블릿에서 빠르게 업로드.
  • CLI 도구 (dsc) – 고급 사용자를 위한 명령줄 접근.
  • Docker, Debian 패키지, Nix, Helm – 다양한 설치 옵션.

작동 방식 (개요)

  1. 수집 – 웹 UI, Android 앱, CLI 또는 API를 통해 파일(스캔본, PDF, 이메일 첨부 파일)을 시스템에 넣습니다.
  2. 처리 – 필요 시 OCR을 실행한 후 텍스트를 Stanford CoreNLP에 전달합니다.
  3. 메타데이터 추론 – NLP 단계에서 엔티티(사람, 조직, 날짜)를 추출하고 태그를 제안합니다.
  4. 저장 및 인덱싱 – 문서와 메타데이터는 PostgreSQL 데이터베이스에 저장되며, 전체 텍스트 인덱스를 통해 빠른 검색이 가능합니다.
  5. 검색 – 태그/발신자로 필터링하거나 자유 텍스트로 검색할 수 있습니다.

기술 스택

  • 백엔드 – 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가 필요한 소규모 사무실 또는 NGO.
  • Scala 기반으로 NLP/ML을 프로덕션 서비스에 통합하는 예제를 찾는 개발자.

위 정보는 프로젝트의 README에서 직접 인용되었습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • Dispatch
  • 프로젝트