紙書類を全文検索できるアーカイブに変える OSS「Paperless-ngx」— Docker で自宅サーバーに即展開
紙書類を全文検索できるアーカイブに変える OSS「Paperless-ngx」— Docker で自宅サーバーに即展開
ひとことでいうと
Paperless-ngx は、紙の書類をスキャンして全文検索できるデジタルアーカイブに変換する、無料のオープンソース書類管理システムです。請求書・契約書・領収書など、あふれがちな紙書類を自宅サーバーやプライベートな環境で一元管理できます。文字の読み取り(OCR)で書類の中身を自動抽出し、キーワード検索で必要な書類をすぐに取り出せるのが特徴です。Google ドライブなど外部のクラウドサービスを使わずに自分のサーバーだけで完結するため、プライバシーを守りたい方にも安心して使えます。元祖 Paperless から数えた公式後継プロジェクトとして、チーム体制で継続的に開発が続いています。
こんな人におすすめ
-
自宅に書類がたまっている方 — 税務書類・保険証券・公共料金の請求書をデジタル化して、物理スペースをすっきりさせたい人に最適です。スキャンするだけで文字が自動抽出され、キーワード検索で即座に取り出せます。
-
プライバシーを重視するフリーランス・小規模オフィスの方 — 機密書類を外部クラウドに預けたくない場合、自宅・自社サーバーで完結するセルフホスト型として最有力候補です。インターネットに公開せず、閉じたネットワーク内だけで使うこともできます。
-
IT 管理者・ホームラボ愛好者 — Docker Compose(複数のアプリをまとめて起動できる仕組み)で手軽に展開でき、Nextcloud・n8n・Home Assistant などのセルフホストツールと REST API(プログラム間の連携口)を通じて組み合わせやすい設計になっています。
主な機能
Paperless-ngx は単なるファイル管理にとどまらず、OCR を核とした高度な検索・自動分類機能を備えています。
- 自動 OCR: Tesseract エンジン(文字認識の定番ソフト)を使い、PDF・PNG・JPEG などからテキストを抽出します。多言語対応で、日本語を含む多数の言語を処理できます。
- 自動タグ付け・分類: Naive Bayes(ナイーブベイズ)という機械学習の手法を使った分類器が、書類の種類・対応者・タグを自動で推定します。書類を取り込めば取り込むほど、分類の精度が上がっていきます。
- 全文検索: 取り込んだ書類の文字をすべてインデックス化(検索用に整理)するため、高速なキーワード検索が可能です。日付・タグ・対応者での絞り込みフィルターも使えます。
- REST API: 外部アプリや自動化ワークフロー(n8n・Zapier など)との連携を標準でサポートしています。
- 多言語 UI: Crowdin(翻訳プラットフォーム)を通じたコミュニティ翻訳で多言語に対応しており、日本語 UI も利用できます。
- カスタムフィールド: バージョン 2.0 以降、任意のメタデータ(付加情報)項目を追加して独自の管理体系を構築できます。
- consume ディレクトリ: 監視フォルダにファイルをドロップするだけで自動取り込みが始まる、便利な仕組みも備えています。
インストール・使い方
Paperless-ngx の推奨インストール方法は Docker Compose です。ターミナル(文字で命令を送る画面)を使い、以下の手順を上から順に実行してください。コマンドはコピー&ペーストで問題ありません。
Step 1: インストールスクリプトを実行する
bash -c "$(curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"
公式が用意した設定スクリプトを実行します。データベースの種類(PostgreSQL 推奨、または SQLite)、OCR 言語、ポート番号などを対話形式で確認されます。質問に答えるだけで docker-compose.yml(起動設定ファイル)と .env(環境変数ファイル)が自動生成されます。
Step 2: コンテナを起動する
cd ~/paperless-ngx
docker compose up -d
Docker(アプリを隔離した環境で動かす仕組み)が各サービスを一括起動します。初回はイメージ(設計図データ)のダウンロードに数分かかります。PostgreSQL・Redis・Celery ワーカー・Web サーバーの 4 つのサービスが同時に立ち上がります。
Step 3: 管理者ユーザーを作成する
docker compose run --rm webserver createsuperuser
ユーザー名・メールアドレス・パスワードを入力して管理者アカウントを作ります。このアカウントで Web 画面にログインします。
Step 4: Web 画面にアクセスする
ブラウザで http://localhost:8000 を開き、作成したアカウントでログインします。左サイドバーの「Documents」からドキュメント一覧が確認でき、上部の検索バーで全文検索をすぐに試せます。
動作要件(推奨スペック)
| 項目 | 推奨スペック |
|---|---|
| OS | Linux(Ubuntu 22.04 LTS 推奨)または Docker が動く任意の環境 |
| CPU | 2 コア以上(OCR 処理はマルチコアで高速化) |
| RAM | 4 GB 以上(Tika + Redis + PostgreSQL の合計) |
| ディスク | 書類量に依存。システム分だけで最低 10 GB 以上を推奨 |
| Python | 3.12 系(コンテナ内部で使用) |
ブラウザで試す(公式デモ)
インストールの前に、まず公式デモで操作感を確かめるのがおすすめです。demo.paperless-ngx.com にアクセスして、ユーザー名 demo / パスワード demo でログインすると、実際のドキュメント一覧・タグ・検索機能をそのまま体験できます。
デモ環境は頻繁にリセットされるため、個人情報や機密書類のアップロードは行わないようにしてください。Paperless-ngx は PostgreSQL・Redis・Celery ワーカー・Tika(Java 製のドキュメントパーサー)など複数のサービスが連携するフルスタックな Web アプリケーションです。そのため、公式デモサイトが最も手軽に全機能を体験できる場となっています。
動かしてみた
今回の検証では、リポジトリの構成と Python 3.12.13 での動作を確認しました。公式の Docker イメージ(ghcr.io/paperless-ngx/paperless-ngx)を使えば、依存パッケージを手元でインストールせずにそのまま起動できます。
Python 3.12.13
リポジトリには uv.lock が含まれており、Rust(高速なプログラミング言語)製のパッケージマネージャ uv による依存管理が採用されています。これにより、環境構築のスピードと再現性が高まっています。
docker/ ディレクトリには初期化スクリプトや管理コマンドスクリプト(management_script.sh・install_management_commands.sh)が格納されており、本番運用向けの整備が行き届いていることも確認できました。Dockerfile の構成も整理されており、カスタマイズしやすい設計になっています。
はじめの一歩:実践のコツ
- まずデモで操作を確認する — インストール前に
demo.paperless-ngx.comでログインし、検索やタグ付けの感触をつかんでおくと、後の設定方針が立てやすくなります。 - テスト PDF から始める — ローカル環境を起動したら、まず数枚の PDF を consume ディレクトリに置いてみましょう。OCR が自動で走り、テキストが抽出されて検索可能になる流れを体験できます。
- OCR 言語を最初に設定する — インストールスクリプト実行時に日本語(
jpn)を指定しておくと、日本語書類の文字認識精度が上がります。あとから設定変更も可能です。 - タグは少数から育てる — タグはあとで増やせます。最初は「税務」「保険」「請求書」など 5 個以内に絞ると、自動分類の学習データが集まりやすくなります。
- consume ディレクトリをスキャナーと連携させる — NAS(家庭用ファイルサーバー)やスキャナーの保存先を consume ディレクトリに向けると、スキャンと同時に自動取り込みが始まって便利です。
- 定期バックアップを設定する — 公式ドキュメントが推奨するとおり、データベースとメディアファイルのバックアップを忘れずに設定してください。書類データは一度消えると取り戻せません。
活用アイデア
-
自宅の確定申告書類管理 — 毎年届く控除証明書・医療費領収書をスキャンしてタグ付けします。確定申告シーズンに全文検索で即座に取り出せます。年ごとのタグとドキュメントタイプを組み合わせれば、書類探しの時間をほぼゼロにできます。
-
小規模オフィスの請求書ワークフロー — メールで届く PDF 請求書を consume ディレクトリに自動投入し、対応者・金額タグを自動分類します。REST API 経由で freee や MoneyForward などの会計ソフトと連携するパイプラインを組むこともできます。
-
ホームラボの自動化パイプライン — n8n や Home Assistant と組み合わせ、ネットワークスキャナーから直接 Paperless-ngx へ自動送信するフローを構築できます。Nextcloud(セルフホストのファイル共有サービス)との WebDAV 連携も設定でき、マルチデバイスからのアクセスも実現します。
-
学習・研究資料のデジタルアーカイブ — 論文のコピー・ノートのスキャン・印刷した技術資料をまとめて管理します。タグで分野別に整理し、キーワード検索で必要な箇所をすぐ探せるため、個人の文献管理ツールとしても活用できます。
-
賃貸・不動産関係の書類整理 — 賃貸借契約書・重要事項説明書・修繕記録などをスキャンして一元管理します。物件ごとのタグを使えば、複数物件の書類もすっきり整理できます。
-
家族の医療・保険書類管理 — 家族分の診断書・検査結果・保険証書をまとめてデジタル化します。必要なときに家族全員の情報をすぐに引き出せる、「家庭の医療ファイル」として機能します。
用語とポイント解説
OCR(光学文字認識) 画像や PDF の中にある文字を、コンピューターが読み取れるテキストデータに変換する技術です。かんたんに言うと「紙に書かれた文字をデジタルの文字に変える仕組み」です。Paperless-ngx では Tesseract というオープンソースエンジンが使われており、日本語を含む多言語に対応しています。
Docker Compose 複数のアプリをまとめて起動・管理するための仕組みです。かんたんに言うと「複数のサービスをセットでまとめて動かすレシピ」です。Paperless-ngx では PostgreSQL・Redis・Web サーバーなど 4 つのサービスをこれで一括管理します。
セルフホスト クラウドサービス(Google・Dropbox など)を使わず、自分のサーバーやパソコンでソフトを動かすことです。かんたんに言うと「自分だけのプライベートクラウドを自宅に置く」イメージです。データが外部に出ないため、プライバシー保護に向いています。
consume ディレクトリ Paperless-ngx が常時監視しているフォルダのことです。かんたんに言うと「このフォルダに入れるだけで自動処理が始まる魔法の箱」です。スキャナーや他のアプリの保存先をここに設定すると、手動操作なしに自動取り込みが実現します。
REST API 異なるアプリケーション同士がデータをやり取りするための通信規約です。かんたんに言うと「アプリ同士が話すための共通言語」です。Paperless-ngx の REST API を使えば、会計ソフトや自動化ツールとの連携が標準的な方法で実現できます。
Naive Bayes(ナイーブベイズ)分類器 確率論をもとにしたシンプルな機械学習の手法で、書類の内容からカテゴリを自動推定するのに使われます。かんたんに言うと「過去のデータから『この書類はこのタグっぽい』と学んで自動仕分けする仕組み」です。取り込む書類が増えるほど精度が向上します。
Tesseract Google が開発した有名なオープンソースの OCR エンジンです。かんたんに言うと「世界中の言語に対応した、文字認識の定番エンジン」です。Paperless-ngx はこの Tesseract を内部で利用して、PDF や画像からテキストを抽出しています。
uv(パッケージマネージャ)
Python の依存ライブラリを管理するツールで、Rust 言語で実装されているため非常に高速です。かんたんに言うと「必要なソフト部品を素早く揃えてくれる道具」です。Paperless-ngx のリポジトリには uv.lock が含まれており、環境の再現性が確保されています。
Tika Apache が開発した Java 製のドキュメントパーサー(書類読み取りツール)です。かんたんに言うと「さまざまな形式のファイルからテキストや情報を取り出す万能ツール」です。Paperless-ngx では複数のサービスの一つとして連携しており、フルスタック構成を支えています。
まとめ:セルフホスト書類管理の決定版
Paperless-ngx は「自宅サーバーで動く書類スキャン・全文検索アーカイブ」として、現在最もコミュニティが活発な OSS の一つです。OCR・自動分類・全文検索・REST API を備え、Docker Compose 一発で展開できる手軽さも大きな魅力です。プライバシーを守りながら書類のデジタル化を進めたい個人・小規模チームにとって、最適な選択肢となっています。公式ドキュメントが強調するとおり、信頼できるホストでの運用と、自宅の閉じたネットワーク内でのバックアップ設定が、セキュリティ上の推奨事項です。ぜひ確定申告書類の一元管理や小規模オフィスの請求書ワークフローの自動化などに活用してみてはいかがでしょうか。