You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Laur Ivan 5de37e394b chore(release): 2.0.4 8 months ago
.github chore: Add funding. 2 years ago
defaults fix: Import word documents. 8 months ago
handlers Initial commit. 2 years ago
meta Initial commit. 2 years ago
molecule Initial commit. 2 years ago
tasks chore: Add option to pull images and cleanup. 1 year ago
templates fix: Import word documents. 8 months ago
tests Initial commit. 2 years ago
vars Initial commit. 2 years ago
.gitignore Initial commit. 2 years ago
.travis.yml Initial commit. 2 years ago
.yamllint Initial commit. 2 years ago chore(release): 2.0.4 8 months ago
LICENSE Initial commit. 2 years ago Add readme. 2 years ago Initial commit. 2 years ago


This role installs paperless-ngx via docker-compose.


You need to have a machine capable of running docker and docker-compose.

Role Variables

This role uses the variables listed below, along with default values (see defaults/main.yml).


This role allows you to select versions of the various docker images used by paperless-ngx:

paperless_image_version_redis: "7"
paperless_image_version_gotenberg: "7.4"
paperless_image_version_tika: "latest"
paperless_image_version_paperless: "latest"


By default, only paperless UI is exposed:

paperless_port: 38000

You can expose the PostgreSQL port as well for backups via:

paperless_db_port: 5432

Run as

You can run the docker containers as a different user via:


If these values are empty, the current ansible user is used :)


When you install paperless for the first time, you need to add a default admin user (username and password):

paperless_admin_user: "admin"
paperless_admin_password: "changeme"



By default, all configuration files (e.g. docker-compose.yml) are placed in ~/paperless. You can change this via:

paperless_setup_path: "~/paperless"

Ingestion and export

Paplerless allows you to inport/export documents via directories:

paperless_consumer_path: "/mnt/documents-consume"
paperless_volume_consume: "{{ paperless_consumer_path }}/consume"
paperless_volume_export: "{{ paperless_consumer_path }}/export"

Docker persistence

You need to set up various volumes for data persistence. They are:

paperless_volume_base: "/mnt/documents"
paperless_volume_media: "{{ paperless_volume_base }}/media"
paperless_volume_metadata: "{{ paperless_volume_base }}/data"
paperless_volume_redis: "{{ paperless_volume_base }}/redis"
paperless_volume_db: "{{ paperless_volume_base }}/db"


  1. The paperless_volume_base provided for convenience as default.
  2. The volumes are directory-based. If you want this role to support docker volumes, please do a pull request :)


By default, this instance is configured with PostgreSQL:

paperless_image_version_db: "13-alpine"
paperless_db_host: "postgres"
paperless_db_user: "paperless"
paperless_db_password: "changeme"

If the value for paperless_db_host is not postgres, then the postgres container is not installed, and you need to provide a different DB.


No dependencies.

Example Playbook

- hosts: servers
    - laurivan.paperless



Author Information

This role was created in 2022 by Laur Ivan