Paperless
Paperless は、スキャンした文書を索引付けし、文書を簡単に検索したり、文書と一緒にメタデータを保存することができるオープンソースの文書管理システムです。この記事は、Paperless-ngx に関するもので、これは Paperless-ng のコミュニティによって維持されているフォークであり、さらにそれは 元の Paperless プロジェクトのフォークであり、両方とも放棄されています。
インストール
paperless-ngxAUR パッケージをインストールします。
フォルダ
Paperless は /usr/share/paperless
にインストールされます。Paperless の永続的なストレージは /var/lib/paperless
に位置しており、media
フォルダ、デフォルトで SQLite データベースを含む data
フォルダ、文書を消費する consume
フォルダ、一時的な uploads
フォルダおよび tmp
変換フォルダを含んでいます。
consume
フォルダは paperless
グループのすべてのユーザーに対して書き込み権限があります。
消費フォルダの権限
ユーザー(例えば "http")が消費フォルダに文書を置くことを許可したい場合は、それらのユーザーを paperless
ユーザーグループ に追加してください。
OCR 言語
Paperless で英語以外の言語の文書を処理したい場合、対応する tesseract 言語データパッケージをインストールする必要があります。ドイツ語の場合は tesseract-data-deu がそれに該当します。
生成された PDF 文書のサイズを減らす
生成された PDF 文書のサイズを減らすために、オプションの依存関係 jbig2enc-gitAUR をインストールすることができます。これにより Paperless は PDF のサイズを小さくすることが可能です。
Paperless-ng からの移行
もし paperless-ng がインストールされており、paperless-ngxAUR に移行したい場合、paperless-ngxAUR をインストールし、尋ねられた際に paperless-ng を削除することを選択できます。データは失われません。それでも、root として次のコマンドを実行する必要があります:
# paperless-manage makemigrations
その後、paperless ユーザーとして通常のデータベースマイグレーションを適用します:
[paperless]$ paperless-manage migrate
最後に、paperless.target
を再起動してください。
開始
paperless.target
を開始/有効化してください。
これで、Paperless インスタンスはポート 8000 で利用可能になるはずです。
設定
Paperless の設定の詳細については、その公式ドキュメントを参照してください。設定ファイルは /etc/paperless.conf
にあります。
設定を変更した後は、paperless.target
を再起動するのを忘れないでください。
設定をニーズに合わせて調整
/etc/paperless.conf
にある設定ファイルを開き、特に OCR に関するパラメーターを含む、あなたのニーズに合わせてパラメーターを調整してください。個々の設定の説明については、公式ドキュメントを参照してください。
シークレットキーの設定
初回インストール後、シークレットキーを生成して設定する必要があります。覚えておく必要はありませんが、署名付きデータのセキュリティに使用されるため、秘密にしておくべきです。シークレットキーを設定するには、以下の行のコメントを外して変更してください:
/etc/paperless.conf
#PAPERLESS_SECRET_KEY=change-me
キーを生成して設定ファイルに設定するには、次のコマンドを実行します:
# sed -i /etc/paperless.conf -e "s|#PAPERLESS_SECRET_KEY=change-me|PAPERLESS_SECRET_KEY=$(date | md5sum | awk '{print $1;}')|"
データベースマイグレーションの実行
初回インストール後およびアップデート後には、データベースマイグレーションを実行する必要があります:
[paperless]$ paperless-manage migrate
管理ユーザーの作成
初回インストール後、Paperless インスタンスの管理ユーザーを作成する必要があります:
[paperless]$ paperless-manage createsuperuser
Nginx
Nginx をインストールし、Paperless のバーチャルホストのための以下の設定を起点として使用してください:
/etc/nginx/sites-available/paperless.domain.tld
server { server_name paperless.domain.tld; listen 80; listen [::]:80; location / { # Adjust host and port as required. proxy_pass http://localhost:8000/; # These configuration options are required for WebSockets to work. proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; } }
Pacman フック
パッケージの更新時に Paperless データベースのマイグレーションを自動的に実行するために、含まれている pacman フック を利用できます:
# mkdir -vp /etc/pacman.d/hooks # ln -sv /usr/share/paperless/docs/paperless.hook /etc/pacman.d/hooks/
トラブルシューティング
文書のインポート時に BadSignature エラーが記録される
文書のインポートを試みた際に BadSignature
エラーが出る場合、/etc/paperless.conf
にある設定ファイルが考慮されていない可能性が高いです。これは、テンプレートの設定ファイル /usr/share/paperless/paperless.conf
が優先されているためです。この場合、/usr/share/paperless/paperless.conf
を削除または名前を変更し、paperless.target
を再起動してください。
誤設定されたリトライとタイムアウトに関する警告
リトライとタイムアウトが誤設定されているという警告が出る場合、それは 安全に無視できます し、python-django-q における シンプルなアップストリームの修正 を待つことができます。警告は以下のように表示されるでしょう:
gunicorn[29457]: /usr/lib/python3.9/site-packages/django_q/conf.py:136: UserWarning: Retry and timeout are misconfigured. Set retry larger than timeout, gunicorn[29457]: failure to do so will cause the tasks to be retriggered before completion. gunicorn[29457]: See https://django-q.readthedocs.io/en/latest/configure.html#retry for details. gunicorn[29457]: warn("""Retry and timeout are misconfigured. Set retry larger than timeout,
ImageMagick でのサムネイル生成が失敗する
/etc/ImageMagick-7/policy.xml
でポリシールールを無効にする必要があります。次の行をコメントアウトするために <!--
と -->
を追加してください:
/etc/ImageMagick-7/policy.xml
<!-- <policy domain="delegate" rights="none" pattern="gs" /> -->
ImageMagick 記事の冒頭で述べられている可能性のあるセキュリティ上の影響を考慮してください。また、ImageMagick のポリシールールが有効なままの場合、Paperless はとにかく ghostscript を使用するようにフォールバックすることも覚えておいてください。
コンシューマーサービスが常に 1 つの CPU コアを 100% で使用する
/etc/paperless.conf
設定ファイルの PAPERLESS_CONSUMER_POLLING
設定に関する行のコメントを解除してください:
/etc/paperless.conf
PAPERLESS_CONSUMER_POLLING=10