Papermerge - ArchWiki

Jump to content

# Papermerge

From ArchWiki

Papermerge is an open source document management system for digital archives.

## Installation

Install the papermergeAUR package. Installation and updates of the package automatically run the database migrations.

## Start

Start/enable `papermerge-gunicorn.service` and `papermerge-worker.service` Your papermerge instance should now be available at port 9001.

## Configuration

For details on papermerge configuration, visit its official documentation. The main configuration file is located at `/etc/papermerge.conf.py`.

Note: The papermergeAUR package creates a `papermerge` system user and provides a `papermerge-manage` command which should always be run as the `papermerge` user. See below for an example. The `papermerge-manage` command should be used wherever the official documentation refers to `manage.py`.

Do not forget to restart `papermerge-gunicorn.service` and `papermerge-worker.service` after changing configurations.

### Create admin user

After initial installation, you should create an admin user for your papermerge instance:

    $ sudo -u papermerge papermerge-manage createsuperuser

### Nginx

Install Nginx and use the following configuration as a starting point for the papermerge virtual host:

    /etc/nginx/sites-available/papermerge.domain.tld

    server {
        server_name papermerge.domain.tld;
        listen 80;
        listen [::]:80;

        location /static/ {
            alias /var/lib/papermerge/static/;
        }

        location /media/ {
            alias /var/lib/papermerge/media/;
        }

        location / {
            proxy_pass http://127.0.0.1:9001;
        }
    }

### Redis

It is recommended to use Redis as a message broker instead of the default filesystem-based approach.

Install redis and python-redis and start/enable `redis.service`. In `/usr/lib/python3.9/site-packages/config/settings/base.py` replace

    /usr/lib/python3.9/site-packages/config/settings/base.py

    CELERY_BROKER_URL = "filesystem://"
    CELERY_BROKER_TRANSPORT_OPTIONS = {
        'data_folder_in': PAPERMERGE_TASK_QUEUE_DIR,
        'data_folder_out': PAPERMERGE_TASK_QUEUE_DIR,
    }

with

    /usr/lib/python3.9/site-packages/config/settings/base.py

    CELERY_BROKER_URL = "redis://"
    CELERY_BROKER_TRANSPORT_OPTIONS = {}
    CELERY_RESULT_BACKEND = "redis://localhost/0"

and restart `papermerge-gunicorn.service` and `papermerge-worker.service`

Category:

- Servers