LASSIC Media らしくメディア
Paperless-ngxで文書管理をセルフホスト構築・外注
LASSIC IT事業部|元請(プライムベンダー)としてシステム保守・運用を受託
この記事のポイント
- Paperless-ngxは、紙文書をOCRで全文検索可能にし、タグ・文書タイプ・差出人で自動整理できる無料のセルフホスト型文書管理システムです。
- consumeフォルダとワークフロー機能を使うと、スキャン投入から分類までの取込作業を自動化できます。
- 構築・バックアップ運用には専門知識が必要になるため、内製と外注のどちらで進めるかを費用構造とリスクの両面から判断する必要があります。
目次
Paperless-ngxとは?OCR全文検索とタグで紙文書を検索可能にするセルフホストOSS
Paperless-ngxとは、スキャンした紙文書やPDFをOCRで全文検索可能な状態に変換し、タグ・文書タイプ・差出人で自動整理できる、無料のセルフホスト型文書管理システムです。GitHub公式リポジトリでは2026年7月時点で43,000件を超えるスターを獲得しており、GPL-3.0ライセンスの下でPaperlessおよびPaperless-ngの公式後継として複数人の共同体制で開発が続いています*2。
紙の請求書や契約書を保管する体制には、保管スペースの確保・検索の手間・原本の劣化リスクといった負担が伴います。Paperless-ngxは、こうした紙文書を電子化し検索可能な状態で一元管理するために開発されたコミュニティ主導のオープンソースプロジェクトです*2。OCR(光学文字認識。画像内の文字をテキストデータへ変換する技術)にはTesseractというエンジンを採用しており、100以上の言語に対応します*1。
文書データは外部のクラウドサービスへ送信されず、自社で用意したサーバーに保存される設計です*1。SaaS型の文書管理サービスを利用する場合と比べ、ライセンス費用が発生しない点はコスト最適化を検討するうえで無視できない要素と言えるでしょう。一方で、構築・運用を自社で担うか外部に委託するかという別のコスト判断が新たに発生します。
タグ・文書タイプ・差出人で紙文書を自動分類するしくみ
タグ・文書タイプ・差出人の3つの軸で整理する
Paperless-ngxは、文書をフォルダではなくタグで整理します。公式ドキュメントは、タグはフォルダより柔軟で、1つの文書に複数のタグを付与できる点を特徴として挙げています*4。文書タイプは請求書・銀行明細・契約書といった文書の種類を識別するために使い、差出人(correspondent)は文書の発信元または送信先である個人・組織を表します*4。
この3つの軸を組み合わせると、フォルダ階層に頼らずに横断的な検索が可能になります。全文検索では文書のタイトル・内容・差出人・タイプ・タグが対象になり、論理演算子や日付範囲を使った絞り込みにも対応します*4。たとえば「type:invoice tag:未払い」のような条件指定で、未払いの請求書だけを一覧表示できます*4。
ネスト構造と自動分類の精度は運用でつくる
バージョン2.19以降では、タグを階層化するネスト機能が加わりました。5階層までタグ構造を組め、親タグを付与すると子タグも自動で付与されます*4。案件・部署・書類種別といった複数の観点を1つの階層に整理したい企業には有用な仕組みでしょう。
文書の分類方法(マッチングアルゴリズム)は、None・Any・All・Exact・正規表現・あいまい一致・Autoの7種類から選べます*5。Auto機能はニューラルネットワークを使い、過去に人が割り当てたタグやメタデータのパターンから自動でタグを推定する仕組みです*5。ただしこの学習は既定で1時間ごとの再学習に依存するため*5、運用開始直後は分類精度が安定しない期間が生じます。導入初期は手動での分類ルール整備と組み合わせる判断が欠かせません。
consumeフォルダとワークフロー機能で取込を自動化する仕組み
consumeフォルダにファイルを置くだけで自動処理が始まる
Paperless-ngxは、「consume」ディレクトリと呼ばれる監視対象フォルダを持ちます。Docker構成では既定で「./consume:/usr/src/paperless/consume」がマウントされ、任意のローカルパスに変更できます*3。このフォルダにスキャンした文書を置くだけで、OCR処理と自動分類が始まる仕組みです。
NFS等inotify(ファイル変更を検知するLinuxの仕組み)に対応していないファイルシステムを使う場合は、ポーリング設定(PAPERLESS_CONSUMER_POLLING)を有効にする必要があります*3。この設定を見落とすと、ファイルを置いても取込が始まらず、原因の切り分けに時間を取られる恐れがあります。
4種類のトリガーとWebhookで処理を自動化するワークフロー機能
ワークフロー機能は、消費開始・文書追加・文書更新・スケジュール実行という4つのトリガーを持ちます*4。ファイル名・保存パス・メール送信元・内容といった条件でフィルタリングでき、条件に一致した文書へタグ・差出人・文書タイプを自動で割り当てられます*4。
所有者の自動設定・メール送信・Webhookの呼び出しまで実行でき、他システムと連携した取込パイプラインを組む余地もあります*4。ただし分類ルールを誤ると、請求書が契約書のタグで登録されるといった誤分類が蓄積し、後から棚卸しし直す手間につながります。
Docker Composeで構築する標準的な導入手順
4つのステップでコンテナを起動する基本フロー
公式ドキュメントは、Docker Composeでの導入を次の4ステップで案内しています*3。第一に、GitHubリポジトリの「/docker/compose」ディレクトリからdocker-compose.*.yml・docker-compose.env・.envをダウンロードします。第二に、保存先ディレクトリのパスやポート番号(既定は8000)をdocker-compose.ymlで調整します。
第三に、docker-compose.envで各種オプションを設定します。USERMAP_UIDとUSERMAP_GIDはホスト側ユーザーのUID・GIDに合わせることが推奨されており*3、これを誤るとconsumeフォルダへのファイル書き込み権限で不整合が起きやすくなります。第四に、docker compose pullでイメージを取得し、docker compose up -dで起動すると、既定では「http://127.0.0.1:8000」でアクセスできます*3。
ベアメタル構築はLinux専用、Windowsは非対応
公式ドキュメントは「Paperless runs on Linux only, Windows is not supported」と明記しています*3。Dockerを使う場合はホストOSに依存しませんが、コンテナを使わないベアメタル構築ではLinux環境が前提となり、Python 3.10〜3.12が必須です*3。社内にWindows Serverしかない企業がベアメタル構築を選ぶ場合、Linux仮想マシンの用意という追加工程が発生する点は見落としやすいポイントです。
セルフホスト内製と外注委託のコスト構造比較
セルフホストによる内製構築と、外部パートナーへの委託では、費用構造・必要スキル・リスク対応の重心が異なります。以下の表に主な違いを整理しました。
| 比較項目 | セルフホスト内製 | 外注委託 |
|---|---|---|
| ライセンス費用 | GPL-3.0の無料ソフトウェアのため発生しません*2 | ソフトウェア自体は無料ですが、構築・保守を委託する分の費用が発生します |
| 必要な専門知識 | Docker運用・Linux管理・USERMAP等の権限設計・分類ルール設計が必要です*3 | 専門パートナーが構築・調整を担うため、社内での知識習得は最小限で済みます |
| バックアップ・データ保全 | エクスポーターやDockerボリュームのバックアップ運用を自社で設計・実行します*6 | バックアップ設計から監視までを含めて委託できます |
| アップグレード対応 | バージョン間の互換性を確認しながら自社で作業します*6 | 動作検証を含めて委託先が対応します |
エクスポーターとDockerボリュームで実現するデータ保全
バックアップには複数の方法があります。1つ目は、文書エクスポーターを使う方法です。すべての文書・サムネイル・メタデータ・データベースの内容をフォルダへエクスポートでき、増分バックアップにも対応します*6。2つ目は、Docker環境で「/var/lib/docker/volumes」に存在するボリュームを直接バックアップする方法で、対象はmedia・data・pgdata・dbdataの4つです*6。
ベアメタル環境ではpaperlessフォルダ全体に加え、PostgreSQLやMariaDBのデータベースも別途バックアップします*6。エクスポーターで作成したバックアップは「document importer」で復元できますが、公式ドキュメントは異なるバージョン間でのインポートはできないと明記しています*6。バージョン互換を確認しないままアップグレードすると、過去のバックアップから復元できなくなるおそれがあります。
アップグレードの手順は、docker compose downでコンテナを停止し、docker compose pullで新しいイメージを取得したうえで、docker compose upにより再起動してマイグレーションを自動実行する流れです*6。バージョン0.9.14以降は「latest」タグでの自動更新にも対応していますが*6、業務データを扱う以上、更新前のバックアップ取得を運用ルールとして固定しておく必要があるでしょう。
電子帳簿保存法との関係を確認する視点
国税庁は、紙で受領・作成した書類をスキャナ保存する際の要件を一問一答形式で公表しています*7。真実性の確保(タイムスタンプの付与等)と検索機能の確保が主な要件として位置づけられており*7、これらを満たすシステムかどうかは個別の確認が必要です。
Paperless-ngxは、OCR全文検索やタグ付けに強みを持つ汎用の文書管理OSSであり、国内の電子帳簿保存法向けに認証を取得した専用製品ではありません。国税関係書類の原本を保存する用途で使う場合は、真実性の確保・検索機能の確保といった要件を自社で満たせるかどうかを、国税庁の公式情報に基づき個別に確認するか、専門家への相談を検討することが望ましいでしょう*7。社内の情報共有・ナレッジ検索用途として使う分には、こうした確認は必須ではありません。
内製構築に必要なスキルと外注との違い
Docker運用・バックアップ設計・分類ルール整備に求められる専門知識
Paperless-ngxを内製で構築・運用する場合、求められる専門知識は複数分野にまたがります。Dockerコンテナの運用とLinuxサーバー管理、USERMAP等の権限設計、エクスポーターやDockerボリュームを使ったバックアップ運用、ワークフロー・マッチングアルゴリズムの分類ルール設計がその内容です。自社の情報システム部門だけでこれらを完結させるには、複数の担当者が連携する体制を整える必要があるでしょう。
判断を先延ばしにしたまま自己流で構築を進めると、consumeフォルダの権限不整合やバックアップ未設計といった問題に後から気づくケースが生じます。特にバージョン間のエクスポート互換性を把握しないまま運用を続けると、いざ復元が必要な場面で対応できないという失敗につながりかねません*6。
専門パートナーに委託した場合の違い
専門パートナーに依頼すると、Docker環境の構築からバックアップ設計、ワークフローの分類ルール調整、バージョンアップ時の互換性確認まで一連の工程を任せられます。自社では構成検討や動作検証だけで時間がかかる場面でも、複数の文書管理基盤を扱ってきた知見を活用すれば、稼働までの期間を圧縮しやすくなります。内製と外注のどちらでも、まずは自社の分類軸とバックアップ要件の整理が出発点と言えるでしょう。
まとめ:Paperless-ngxセルフホスト活用の3つの判断軸
本稿ではPaperless-ngxの機能とセルフホスト構築の要点を、公式ドキュメントとGitHubリポジトリの情報に基づいて整理しました。要点は次の3つに集約されるでしょう。第一に、OCR全文検索・タグ・ワークフローによる自動分類はGPL-3.0の無料OSSで実現でき、ライセンス費用は発生しません*2。第二に、Docker運用・権限設計・バックアップ運用には専門知識が必要であり、バージョン間の互換性にも注意が必要です*6。第三に、国税関係書類の原本保存に使う場合は電子帳簿保存法の要件充足を個別に確認する必要があり、構築・運用の判断と実行は外部委託によってリスクを抑えやすくなります*7。
よくある質問
Paperless-ngxは無料で商用利用できますか。
はい、GPL-3.0ライセンスのOSSであり、ソースコードは無料で利用・改変できます*2。商用環境で使う場合も、改変時のソース公開義務等、GPL-3.0の条件を確認したうえで運用することが大切です。
Paperless-ngxの構築にはどのくらいの専門知識が必要ですか。
Docker Composeでのコンテナ管理、consumeフォルダの権限設定(USERMAP_UID/GID)、バックアップ設計など複数分野の知識が求められます*3。ベアメタル構築を選ぶ場合はLinux専用である点にも注意が必要です*3。
日本語の文書もOCRで全文検索できますか。
OCRエンジンのTesseractは100以上の言語に対応しており、設定次第で日本語文書の全文検索も扱えます*1。ただし手書き文字やレイアウトが複雑な帳票では、認識精度に差が出る場合があります。
バックアップはどのように行いますか。
文書エクスポーターで文書・サムネイル・メタデータ・データベースの内容を一括エクスポートする方法と、Dockerの4つのボリューム(media・data・pgdata・dbdata)を直接バックアップする方法があります*6。異なるバージョン間ではインポートに制限がある点も確認が必要です*6。
電子帳簿保存法に対応した文書管理として使えますか。
Paperless-ngx自体は、電子帳簿保存法向けに認証された専用製品ではありません。国税関係書類の原本を保存する用途では、国税庁が示す真実性の確保・検索機能の確保等の要件を自社で満たせるか、個別に確認する必要があります*7。
著者:テレリモ総研編集部 鈴木 亮佑
ご不明な点はお問い合わせフォームからもご連絡いただけます。
- *1 出典:Paperless-ngx公式ドキュメント「Overview」(https://github.com/paperless-ngx/paperless-ngx/blob/main/docs/index.md)
- *2 出典:Paperless-ngx公式GitHubリポジトリ「README」(https://github.com/paperless-ngx/paperless-ngx)
- *3 出典:Paperless-ngx公式ドキュメント「Setup」(https://github.com/paperless-ngx/paperless-ngx/blob/main/docs/setup.md)
- *4 出典:Paperless-ngx公式ドキュメント「Usage overview」(https://github.com/paperless-ngx/paperless-ngx/blob/main/docs/usage.md)
- *5 出典:Paperless-ngx公式ドキュメント「Advanced usage」(https://github.com/paperless-ngx/paperless-ngx/blob/main/docs/advanced_usage.md)
- *6 出典:Paperless-ngx公式ドキュメント「Administration」(https://github.com/paperless-ngx/paperless-ngx/blob/main/docs/administration.md)
- *7 出典:国税庁「電子帳簿保存法一問一答【スキャナ保存関係】」(https://www.nta.go.jp/law/joho-zeikaishaku/sonota/jirei/pdf/0021006-031_02.pdf)