Paperless-ngx:VPS 上に自分専用の OCR 文書アーカイブを構築する

読了時間 6分
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 は常時稼働するため、サービスはメール添付を定期的に取得できます。ただし文書には個人情報が含まれることが多いため、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 が横に作成される場合があります。

スマートフォンから文書をアップロードできますか?

はい。Web インターフェース、API、対応モバイルアプリ、または接続済みメールアドレスへの転送を利用できます。

VPS のバックアップだけで十分ですか?

VPS のスナップショットは役立ちますが、組み込みエクスポーターと組み合わせ、コピーを別の場所に保存する方が安全です。アーカイブを作るだけでなく、クリーンな環境への復元をテストすることも重要です。