Paperless

提供: ArchWiki
2024年4月12日 (金) 19:24時点におけるKusanaginoturugi (トーク | 投稿記録)による版 (飜訳)
ナビゲーションに移動 検索に移動

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-ngxAUR パッケージは paperless システムユーザーを作成し、常に paperless ユーザーとして実行されるべき paperless-manage コマンドを提供しています。例については 以下 を参照してください。公式ドキュメントで python3 manage.py と言及されている場所ではいつも paperless-manage コマンドを使用してください。

設定を変更した後は、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/

Troubleshooting

BadSignature errors logged when trying to import documents

If you see BadSignature errors when trying to import documents, it is likely that your configuration file located at /etc/paperless.conf is not taken into account because the template configuration file /usr/share/paperless/paperless.conf is given precedence. In that case, remove or rename /usr/share/paperless/paperless.conf and restart paperless.target.

Warning about misconfigured retry and timeout

If you see a warning about misconfigured retry and timeout, you can safely ignore it and wait for the simple upstream fix in python-django-q. The warning would look like this:

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,

Thumbnail generation with ImageMagick fails

You have to disable a policy rule in /etc/ImageMagick-7/policy.xml. Add <!-- and --> to comment out the following line:

/etc/ImageMagick-7/policy.xml
<!-- <policy domain="delegate" rights="none" pattern="gs" /> -->

Consider the possible security implications noted at the beginning of the ImageMagick article. Also note that Paperless will fall back to using ghostscript anyway if the ImageMagick policy rule stays active.

The consumer service keeps one CPU core constantly at 100%

Uncomment the line concerning the PAPERLESS_CONSUMER_POLLING setting in your /etc/paperless.conf configuration file:

/etc/paperless.conf
PAPERLESS_CONSUMER_POLLING=10