Tropic Host

Paperless-ngx: VPS에 구축하는 나만의 OCR 문서 아카이브

읽는 데 12분
Tropic
Paperless-ngx: VPS에 구축하는 나만의 OCR 문서 아카이브

Paperless-ngx: 나만의 검색 가능한 문서 아카이브를 만드는 방법

계약서에 중요한 금액이 적혀 있었다는 것은 기억나지만, 파일 이름은 scan_2024_03_17.pdf이고 비슷한 파일 수백 개 사이에 섞여 있습니다. 일반 파일 관리자는 이름으로만 검색하지만, 필요한 단어는 스캔 이미지 안에 들어 있습니다.

Paperless-ngx는 이 문제를 해결합니다. PDF, 영수증 사진 또는 이메일 첨부 파일을 올리면 서비스가 텍스트를 인식하고 색인을 만든 뒤 흩어진 파일을 하나의 아카이브로 정리합니다. 이후에는 성, 주소, 계좌 번호 또는 페이지 안의 어떤 문구로도 문서를 찾을 수 있습니다.

Paperless-ngx란 무엇인가

Paperless-ngx는 무료 오픈 소스 문서 관리 시스템입니다. 자신의 서버에 설치해 여러 출처의 파일을 받아들이고, OCR을 수행하며, 문서 내용으로 검색할 수 있게 해 줍니다.

하나의 경직된 폴더 구조 대신 발신처, 문서 유형, 태그, 날짜, 사용자 정의 필드, 저장 규칙을 사용합니다. 덕분에 2026년 전기 요금 청구서, 특정 아파트와 관련된 문서 또는 곧 만료되는 보증서를 몇 초 만에 표시할 수 있습니다.

Paperless-ngx가 일반 폴더보다 나은 이유

문서가 적고 자신이 정한 이름 규칙을 기억하는 동안에는 폴더도 잘 작동합니다. 몇 년이 지나면 문서, 스캔, 새 파일, 정리할 것 같은 디렉터리가 생기고, 필요한 파일을 찾기 어려워집니다.

일반 폴더Paperless-ngx
파일 이름으로 검색문서 내부 텍스트 검색
파일 하나당 폴더 하나여러 태그와 속성 사용
수동으로 이름 지정 및 분류메타데이터 자동 지정
첨부 파일을 직접 저장해야 함이메일에서 가져오기
스캔본은 이미지로 남음OCR로 텍스트 검색 가능

어느 디렉터리에 저장했는지 기억하려고 애쓰는 대신, 문서 속 단어 하나만 기억하면 됩니다.

Paperless-ngx가 파일을 처리하는 방식

파일을 업로드하면 서비스는 다음 작업을 수행합니다.

  1. 원본 파일을 저장합니다.
  2. 기존 텍스트를 추출하거나 OCR을 시작합니다.
  3. 필요한 경우 보존용 PDF 버전과 미리 보기를 만듭니다.
  4. 내용을 전체 텍스트 색인에 추가합니다.
  5. 규칙을 적용하고 발신처, 유형, 태그, 저장 경로를 제안합니다.

처음에는 업로드와 검색만 사용하고, 자동화는 나중에 추가해도 됩니다.

Paperless-ngx의 가장 유용한 기능

스캔본 내부 검색

OCR 처리 후에는 주소로 계약서를 찾고, 고객 번호로 청구서를 찾으며, 기기 모델명으로 영수증을 찾을 수 있습니다. 예를 들어 “중도 해지”를 검색하면 원본 PDF가 이미지로만 구성되어 있어도 해당 문구가 들어 있는 문서가 표시됩니다.

인식 품질은 스캔 상태에 따라 달라집니다. 반듯하고 대비가 높은 페이지는 어둡고 비스듬히 찍은 사진보다 더 잘 인식됩니다. 러시아어와 영어가 섞인 아카이브라면 두 OCR 언어를 모두 설치하는 것이 중요합니다.

자동 분류

Paperless-ngx는 새 문서를 이미 정리한 문서와 비교할 수 있습니다. 같은 공급자의 청구서 몇 장을 직접 분류하면, 서비스가 이후 파일에 동일한 발신처, 유형, 태그를 제안하도록 학습합니다.

엄격한 처리 논리가 필요할 때는 텍스트, 파일 이름, 출처 또는 업로드 폴더를 기준으로 규칙을 만들 수 있습니다.

이메일에서 가져오기

서비스는 IMAP을 통해 메일함을 확인하고 규칙에 따라 메시지를 처리할 수 있습니다. 예를 들어 특정 공급자가 보낸 PDF 첨부 파일만 가져와 아카이브로 보내고, 이후 이메일을 읽음으로 표시하거나 다른 폴더로 옮길 수 있습니다.

청구서가 받은편지함에 계속 쌓이지 않고 스캔 문서와 함께 검색됩니다.

워크플로, 필드 및 저장된 보기

워크플로는 문서가 업로드, 추가, 변경될 때 또는 일정에 따라 작업을 실행합니다. 소유자를 지정하고, 태그를 추가하며, 유형과 저장 경로를 선택할 수 있습니다.

사용자 정의 필드를 이용하면 아카이브를 작은 데이터베이스처럼 활용할 수 있습니다. 계약서에는 만료일을, 청구서에는 금액과 납부 기한을, 장비에는 일련번호를 저장할 수 있습니다. 저장된 보기에서는 예를 들어 “결제 필요” 또는 “이번 달 보증 만료” 목록을 표시할 수 있습니다.

바코드를 이용한 일괄 스캔

Paperless-ngx는 바코드를 이용해 하나의 큰 스캔 파일을 여러 문서로 나눌 수 있습니다. 종이 사이에 구분 페이지를 넣거나 각 문서의 첫 장에 ASN 코드를 붙일 수 있습니다.

ASN은 디지털 사본과 종이 원본을 연결하는 아카이브 일련번호입니다. 많은 양의 종이를 한꺼번에 디지털화할 때 편리합니다.

문서 버전과 선택형 AI

Paperless-ngx 3.x 계열에는 문서 버전, 공동 접근을 위한 링크 모음, 내장 AI 기능이 추가되었습니다. 모델을 연결하면 서비스가 메타데이터를 제안하고 문서에 관한 질문에 답할 수 있습니다.

핵심 기능에는 AI가 필요하지 않습니다. OCR, 검색, 규칙, 태그, 이메일 가져오기는 AI 없이 작동합니다. 외부 AI API를 사용하면 일부 텍스트가 서버 밖으로 전송될 수 있고, 로컬 모델은 더 많은 자원을 요구합니다.

Paperless-ngx가 적합한 사용자

개인 및 가족 아카이브: 계약서, 보험 증권, 명세서, 보증서, 영수증, 주거 관련 문서, 기기 설명서.

프리랜서와 소규모 사업자: 청구서, 검수 문서, 계약서, 지출 자료, 거래처와의 서신. 이메일 가져오기는 수작업을 줄이고, 접근 권한은 사용자 간 문서 공유를 가능하게 합니다.

행정 업무: 원본 증빙의 빠른 검색, 공급자 및 기간별 필터링, 미처리 파일 대기열 관리.

Paperless-ngx는 회계 프로그램, 전자 서명 또는 기업용 ECM 시스템을 대체하지 않습니다.

Paperless-ngx에 필요한 서버 사양

부하는 페이지 수, 스캔 품질, 업로드 빈도, 추가 구성 요소에 따라 달라집니다. 시작할 때는 다음과 같은 실용적인 기준을 사용할 수 있습니다.

사용 시나리오CPURAM디스크
개인 아카이브2 vCPU2 GBNVMe 30–50 GB 이상
가족 또는 소규모 팀2–4 vCPU4 GBNVMe 60–100 GB 이상
대량 문서, Office 파일, 로컬 AI4 vCPU 이상8 GB 이상아카이브 용량에 여유 공간 추가

성능이 낮은 서버에서도 인터페이스는 정상적으로 작동할 수 있지만, 큰 문서의 OCR은 느려집니다. Word, Excel 및 기타 오피스 형식을 처리하는 Tika와 Gotenberg도 메모리 사용량을 늘립니다.

디스크 용량은 여유 있게 계산해야 합니다. 원본 외에도 보존용 버전, 미리 보기, 색인, 데이터베이스, 임시 파일이 저장될 수 있습니다. 백업을 위한 별도 공간도 필요합니다.

Docker로 VPS에 Paperless-ngx 설치하기

가장 간단하면서 공식적으로 지원되는 방법은 Docker Compose입니다. Linux 서버, Docker Engine, Compose 플러그인이 필요합니다.

공식 프로젝트는 대화형 설치 프로그램을 제공합니다.

bash -c "$(curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"

설치 디렉터리, 데이터베이스, 포트, OCR 언어, 추가 구성 요소, 관리자 계정을 묻고 나서 Compose 구성을 만들고 컨테이너를 시작합니다.

운영 서버에서는 먼저 스크립트를 내려받아 내용을 확인하는 편이 더 안전합니다.

curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh \
  -o install-paperless-ngx.sh
less install-paperless-ngx.sh
bash install-paperless-ngx.sh

설치 디렉터리에서 다음 명령으로 시작 상태를 확인할 수 있습니다.

docker compose ps
docker compose logs -f webserver

러시아어와 영어 OCR에는 보통 rus+eng를 지정하고, Docker에 추가 언어 데이터 rus eng를 설치합니다.

애플리케이션의 내부 포트를 인터넷에 직접 공개하지 마십시오. 리버스 프록시를 통해 도메인을 연결하고 HTTPS를 활성화한 뒤 불필요한 포트를 닫으십시오. 개인 아카이브라면 VPN을 통해서만 접근하도록 제한하는 것이 더 안전합니다.

tropic.host VPS에서 Paperless-ngx 운영하기

소규모 아카이브에는 2 vCPU, 2–4 GB RAM, NVMe 디스크를 갖춘 VPS가 적합합니다. tropic.host에서 Ubuntu를 배포하고 Docker를 설치하면, 집에 NAS를 두지 않아도 컴퓨터와 휴대전화에서 Paperless-ngx에 접근할 수 있습니다.

VPS는 24시간 작동하므로 서비스가 정기적으로 이메일 첨부 파일을 가져올 수 있습니다. 다만 문서에는 개인 정보가 포함되는 경우가 많으므로 HTTPS 또는 VPN, SSH 키, 제한적인 방화벽, 독립적인 백업을 사용해야 합니다.

보안 및 백업

Paperless-ngx는 문서용 종단 간 암호화를 기본 제공하지 않습니다. 서버, Docker 볼륨 또는 백업에 대한 전체 접근 권한이 있는 사용자는 아카이브를 읽을 가능성이 있습니다.

최소한 다음 조치를 적용해야 합니다.

  • 신뢰할 수 있는 인프라에만 서비스를 배치합니다.
  • 시스템과 컨테이너를 업데이트합니다.
  • SSH 접근을 키 인증으로 제한합니다.
  • 암호화된 사본을 주 서버 밖에 보관합니다.
  • 복구 절차를 정기적으로 테스트합니다.

이전과 백업에는 내장된 document_exporter를 사용할 수 있습니다.

docker compose exec webserver document_exporter ../export

내보낸 디렉터리는 다른 장치나 독립된 저장소로 복사해야 합니다. 같은 VPS에 둔 사본은 디스크 손상, 실수로 인한 삭제 또는 접근 권한 상실로부터 보호해 주지 못합니다.

Paperless-ngx를 설치할 가치가 있는가

Paperless-ngx는 문제가 파일 저장이 아니라 파일 찾기로 바뀌었을 때 유용합니다. 스캔본, 첨부 파일, 이름을 알아보기 어려운 PDF를 내용으로 검색할 수 있고 일관된 규칙으로 처리되는 아카이브로 바꿉니다.

처음에는 서비스를 설치하고 OCR 언어를 설정한 뒤 첫 파일을 업로드하는 것만으로 충분합니다. 태그, 이메일 가져오기, 워크플로, 바코드, AI 기능은 명확한 반복 작업이 생겼을 때 추가하는 것이 좋습니다.

FAQ

Paperless-ngx를 무료로 사용할 수 있나요?

네. 오픈 소스 프로젝트입니다. 비용은 하드웨어, VPS, 도메인 또는 외부 서비스에만 발생합니다.

Paperless-ngx가 러시아어 텍스트를 인식할 수 있나요?

네. OCR은 Tesseract의 rus 언어 패키지를 사용합니다. 여러 언어가 섞인 아카이브에는 보통 rus+eng를 설정합니다.

OCR 후 원본 파일이 삭제되나요?

아니요. 원본 파일은 보존됩니다. 설정에 따라 별도의 보존용 PDF 버전이 함께 생성될 수 있습니다.

휴대전화에서 문서를 업로드할 수 있나요?

네. 웹 인터페이스, API, 호환 모바일 앱 또는 연결된 이메일 주소로 문서를 전달하는 방법을 사용할 수 있습니다.

VPS 백업만으로 충분한가요?

VPS 스냅샷은 유용하지만 내장 내보내기 도구와 함께 사용하고 사본을 별도로 보관하는 편이 좋습니다. 아카이브를 만드는 것뿐 아니라 깨끗한 설치 환경에서 복구를 시험하는 것도 중요합니다.