[Support] Paperless-ngx Docker


Recommended Posts

  1794902848_Whitelogo-nobackground.thumb.png.e27c5ed05612c8a620819b3862a3a392.png

 

Overview: Dedicated support thread for the Docker template paperless-ngx provided via the selfhosters/unRAID-CA-templates repository.

Project Page: https://github.com/paperless-ngx/paperless-ngx

Demo: https://demo.paperless-ngx.com/

Documentation: https://docs.paperless-ngx.com

Registry: https://github.com/paperless-ngx/paperless-ngx/pkgs/container/paperless-ngx

Changelog: https://docs.paperless-ngx.com/changelog/

 

This is the official paperless-ngx Docker support thread. Feel free to ask questions, share your experience with paperless-ngx or describe your paperless setup at home. I try to update this main post regularly based on your feedback. From here on, I will use the terms paperless and paperless-ngx interchangeable.

 

1. What is paperless-ngx and how does it differ from paperless-ng?

Paperless-ngx forked from paperless-ng to continue the great work and distribute responsibility of supporting and advancing the project among a team of people. The paperless-ng project hasn't received a lot of updates and bug fixes in the past month. Even pull requests are not merged for some time now.

 

For now, the paperless-ng and paperless-ngx Unraid templates will coexist in the community application store. That allows existing users to still rely on the mature paperless-ng for their productive environment and make the change to paperless-ngx once they feel comfortable.

 

Consider joining us! Discussion of this transition can be found in issues #1599 and #1632.

 

2. How to Install

2. 1 New Installation

  • Download and install a Redis container from the community application store (CA)
  • Download and configure the paperless-ngx container from the CA
    • Make sure you point the container to your Redis instance. Use your actual IP and not localhost, because the reference is resolved in the container. In case you need to pass a password to Redis, use the following connection string redis://:[PASSWORD]@[IP]:6379 instead. At the moment Redis doesn't support users and only provides authentication against a global password. You can pass anything as a username, including the empty string as in my example here. To configure a password for your Redis container, set 'redis-server --requirepass "your-secret"' as post arguments on the Redis docker container. Also make sure to not use any special characters. Otherwise, the connection string might not be readable by paperless.
  • Create a user account after this container is created i.e. from Unraids Docker UI, click the paperless-ngx icon and choose Console. Then enter the command "python manage.py createsuperuser" in the prompt and follow the instructions. Alternative, set 'PAPERLESS_ADMIN_USER' and 'PAPERLESS_ADMIN_PASSWORD' in your paperless-ngx docker template (docs). With the later approach, it might be easier to find your password to sensible documents stored in paperless.

 

2.1 Migration from paperless-ng

 

Paperless-ngx is meant to be a drop-in replacement for Paperless-ng and thus upgrading should be trivial for most users, especially when using docker. However, as with any major change, it is recommended to take a full backup first!

 

 

3. My personal paperless workflow

I use the iOS app ScannerPro to scan my documents and upload them via the app to a webDAV target on my Unraid server. The webDAV target is mounted in the container as consume directory.

 

I use the pre and post hooks to execute web hooks in order to check via Home Assistant whether the processing failed for an uploaded document. Home Assistant sends then notifications about the import status to my phone. This way I can throw away the physical document without worrying about it not being imported.

 

How does your workflow look like? Feel free to share it in this thread. Here you can also find the official recommended workflow for managing your documents with paperless-ngx.

 

4. FAQ

 

4.1 Why does the consumer not pick up my files?

The consumer service uses inotify to detect new documents in the consume folder. This subsystem, however, does not support NFS shares. You can disable inotify and use a time-based polling mechanism instead (checkout the 'PAPERLESS_CONSUMER_POLLING' variable. If set to a value n greater than 0, inotify is disabled and the directory is polled every n seconds).

 

4.2 How to customize paperless-ngx?

Paperless-ngx does support much more environment variables than the Unraid template initially offers. You can find them in the documentation here. Make sure to have a proper backup before playing around with the environment variables.

 

4.3 What scanner do you use for paperless-ngx at home?

A list of scanners used by our community:

  • iPhone with ScannerPro app; one time purchase (@T0a)
  • More will be added when you share your scanner

Paperless-ngx also maintains a list of recommended scanners. Feel free opening a pull request over there to add your recommended scanner to the documentation too.

 

4.4 Can I use paperless-ngx on a mobile device?

Mobile support in paperless-ngx is also almost there. Some layouts don't work yet on small screens. There is also a mobile app in pretty early development stage. Though, it is only available in the Android store yet.

 

4.5 What is the future of the original paperless-ng template in Unraid?

At some point, I will probably remove the paperless-ng template and close its support thread.

 

4.6 How to configure PostgreSQL as a database?

See this post on how to configure PostgreSQL in the template. The official documentation gives further migration steps needed.

 

4.7 When running two instances of paperless, I cannot stay logged-in to both

 

That is because both instances share the same session identifier (cookie). Apply to one of them the environment variable PAPERLESS_COOKIE_PREFIX (documentation).

Edited by T0a
Update links
  • Thanks 2
Link to comment

Nice work, paperless was on my list to test for some time. Yesterday I give it a try and it works nice.

 

Now I like to setup two instances of paperless, one for my private documents and one for articles and magazines I've collected. The second one should be accessible for friends, but I don't want them to see my private docs. Therefore I like to use two instances.

 

I managed to populate two docker containers (paperless-ngx-intern on port 8000 and paperless-ngx-extern on port 8001) using the same redis docker container. Both instances are working, but I am not able to stay logged in into both at the same time.

 

I've searched the forum, found nothing. I don't know if the issue is related to paperless or to redis. Is it possible to use multiple containers with one redis instance or do I need a single redis instance for every paperless container?

Link to comment
On 3/15/2022 at 12:04 PM, pika said:

i've never made the migration from paperless to paperless-ng

and so i'm still on the deprecated docker...

could somebody help me with the migration from paperless to paperless-ngx?

 

Migrate from paperless to paperless-ng: https://paperless-ng.readthedocs.io/en/latest/setup.html?highlight=migrate#migration-to-paperless-ng

Migrating from paperless to paperless-ngx: https://paperless-ngx.readthedocs.io/en/latest/setup.html?highlight=migrate#migrating-from-paperless

Migrate from paperless-ng to paperless-ngx: https://paperless-ngx.readthedocs.io/en/latest/setup.html?highlight=migrate#migrating-from-paperless-ng

 

Will add those links to the first post. Please do a full backup first!

 

Link to comment
On 3/16/2022 at 11:32 AM, cfranz said:

Nice work, paperless was on my list to test for some time. Yesterday I give it a try and it works nice.

 

Now I like to setup two instances of paperless, one for my private documents and one for articles and magazines I've collected. The second one should be accessible for friends, but I don't want them to see my private docs. Therefore I like to use two instances.

 

I managed to populate two docker containers (paperless-ngx-intern on port 8000 and paperless-ngx-extern on port 8001) using the same redis docker container. Both instances are working, but I am not able to stay logged in into both at the same time.

 

I've searched the forum, found nothing. I don't know if the issue is related to paperless or to redis. Is it possible to use multiple containers with one redis instance or do I need a single redis instance for every paperless container?

 

That is because both instances share the same session identifier (cookie). Apply to one of them the environment variable PAPERLESS_COOKIE_PREFIX=second. Updated the FAQ.

Edited by T0a
Link to comment
On 3/19/2022 at 9:25 AM, T0a said:

 

That is because both instances share the same session identifier (cookie). Apply to one of them the environment variable PAPERLESS_COOKIE_PREFIX=second. Updated the FAQ.

 

Thank you, that worked perfect!

 

I had another issue, that I solved myself. When I added documents to the consume folder (separate folder for each instance), some documents were consumed and some not. In the log all documents were added to the task queue. After configuring a separate redis container for each paperless container, everything is working fine and all documents are consumed ;)

Link to comment

I'm sorry, I do not understand how I can upgrade from the Unraid docker Paperless-ng to paperless-ngx using the Unraid web-Gui.

 

What do I need to do in Unraid exactly to upgrade  my working Paperless-ng docker to the Paperless-ngx docker ?

 

The above documentation link how to upgrade, is NOT explaining how to upgrade within Unraid - so a step by step explanation using the Unraid web-Gui would be very useful

I have a very large archive of documents with 10000++ documents, so I am hesitating to upgrade, without knowing and understanding exactly what I need to do. Thank you very much

 

Do I simply need to remove the docker Paperless-ng and reinstall the Docker paperless-ngx ?

What about the app-data ?

What about the links to the current database (I use postgresql)

What about parameters of the docker (old / new migration)

 

Thank you for your kind understanding.

 

P.S.:

Please DO NOT eliminate the 'old' Paperless-ng docker from the app folder in the near future. If anything will go wrong with the upgrade, the current backup will only work with the old paperless-ng docker. If that is not available any more, some thousands of working hours would be damaged, if there is no source to reinstall the old docker image any more...

 

 

Link to comment
On 3/20/2022 at 6:43 PM, ullibelgie said:

I'm sorry, I do not understand how I can upgrade from the Unraid docker Paperless-ng to paperless-ngx using the Unraid web-Gui.

 

What do I need to do in Unraid exactly to upgrade  my working Paperless-ng docker to the Paperless-ngx docker ?

 

The above documentation link how to upgrade, is NOT explaining how to upgrade within Unraid - so a step by step explanation using the Unraid web-Gui would be very useful

I have a very large archive of documents with 10000++ documents, so I am hesitating to upgrade, without knowing and understanding exactly what I need to do. Thank you very much

 

Do I simply need to remove the docker Paperless-ng and reinstall the Docker paperless-ngx ?

What about the app-data ?

What about the links to the current database (I use postgresql)

What about parameters of the docker (old / new migration)

The easiest way would be to simply adapt the existing paperless-ng template because you won't have to mess with any configuration:

  1. Find your paperless container in the UI.
  2. Open the configuration.
  3. Under "Repository", replace
    jonaswinkler/paperless-ng:latest

    with

    ghcr.io/paperless-ngx/paperless-ngx:latest
  4. Click "Apply".

That's it!

 

Optional:

  • Rename the container itself: In the container configuration, change the "Name" field to "paperless-ngx". It seems if you change this name you will also have to potentially re-configure the auto-start option.
  • Rename your appdata folder (while the container is stopped). After renaming the folder, make sure to mirror the name change in the container configuration field "Data" (and any other fields that reference the appdata folder).
  • Update the "Overview" field to remove references to paperless-ng and add paperless-ngx info. To do this, switch to the advanced view within the container configuration and paste the following into "Overview":
    Paperless-ngx is a document management system that transforms your physical documents into a searchable online archive so you can keep, well, less paper. Paperless-ngx forked from paperless-ng to continue the great work and distribute responsibility of supporting and advancing the project among a team of people.[br][br]
    
    Requirements: Paperless-ngx requires Redis as external service. You can install it from the CA store. Make sure to adjust the configuration in the template accordingly.
    Setup: Create a user account after this container is created i.e. from Unraids Docker UI, click the paperless-ngx icon and choose Console. Then enter "python manage.py createsuperuser" in the prompt and follow the instructions.
    Paperless-ngx Documentation: https://paperless-ngx.readthedocs.io/en/latest/
    Additional Template Variables: https://paperless-ngx.readthedocs.io/en/latest/configuration.html
    Demo: https://demo.paperless-ngx.com/

    (This is the text that the paperless-ngx template uses, you can find it here on GitHub)

  • In advanced view, change "Docker Hub URL" to

    https://github.com/paperless-ngx/paperless-ngx/pkgs/container/paperless-ngx

If you do all these optional steps, you have effectively transformed the old paperless-ng template into the new paperless-ngx template. There are two exceptions to this however: you can't update the template with links to the paperless-ngx GitHub repository or this support forum thread, both of those will still point to the respective paperless-ng resources.

 

The alternative is to pull the new template from CA but this will require you to copy over configuration with will lead to problems if you make a mistake. I haven't done this myself but the steps should be as follows:

  1. Stop the paperless-ng container.
  2. Pull the paperless-ngx template and copy over all the configuration from the old paperless-ng template 1-to-1 (including the old appdata folder name).
  3. Start the paperless-ngx container and check that everything is working as you'd expect.
  4. Remove the paperless-ng container.
Edited by jeypiti
Link to comment
  • 2 weeks later...

Many thanks for information, @JeyP91

- If I only follow your explaination from the beginning of your post point 1.) to 4.)  - is it possible to update the paperless-ngx, whenever there is a maintainance/functional update available - let's say from todays version 1.6.0 to 1.6.1 sometimes in the future

- will I be alerted that my current version of paperless-ngx is outdated (when I manually check for update for all dockers), so that I know I need to update paperless-ngx with the newer version

 

So what would be the possible advantage doing the optional changes you mentioned or even the alternative procedere point 1-4 from the end of your posting...

 

Another concern:

Is there a way for me to save the original paperless-ng docker, in case it is removed from the apps page.

Because the original paperless-ng docker works at the moment for me, but if I find problems with paperless-ngx and at the same time the original docker-app is removed, there is no way for me to go back the the current state using paperless-ng....

With my current large archive (tens of thousands of docs), upgrading to ngx still seems to be a risk for me, if the original docker-app will be removed soon... (as announced) - so I could not fall back to the original paperless-ng

 

Thanks for clearifing...

 

 

Link to comment
On 4/1/2022 at 2:37 PM, ullibelgie said:

Many thanks for information, @JeyP91

- If I only follow your explaination from the beginning of your post point 1.) to 4.)  - is it possible to update the paperless-ngx, whenever there is a maintainance/functional update available - let's say from todays version 1.6.0 to 1.6.1 sometimes in the future

 

Maybe WatchTower will serve your needs. Personally, I don't like automatic updates for my containers as I have the urge for checking the application after an update. Keep in mind that even minor updates might break the setup.

 

On 4/1/2022 at 2:37 PM, ullibelgie said:

- will I be alerted that my current version of paperless-ngx is outdated (when I manually check for update for all dockers), so that I know I need to update paperless-ngx with the newer version

 

Maybe Diun will serve your needs.

 

On 4/1/2022 at 2:37 PM, ullibelgie said:

Another concern:
...

With my current large archive (tens of thousands of docs), upgrading to ngx still seems to be a risk for me, if the original docker-app will be removed soon... (as announced) - so I could not fall back to the original paperless-ng

 

I have not stated to remove the paperless-ng container any time soon. Please re-read the introduction post again:

 

On 3/13/2022 at 9:04 AM, T0a said:

For now, the paperless-ng and paperless-ngx Unraid templates will coexist in the community application store. That allows existing users to still rely on the mature paperless-ng for their productive environment and make the change to paperless-ngx once they feel comfortable.

 

Edited by T0a
Link to comment
  • 2 weeks later...

I installed these 2 containers:

Repository: gotenberg/gotenberg
Repository: apache/tika

In Paperless i added these 3 varibles:

Name / Key:    PAPERLESS_TIKA_ENABLED

Value:    1

 

Name / Key:    PAPERLESS_TIKA_ENDPOINT

Value:    http://IP-of-tika-container:9998

 

Name / Key:    PAPERLESS_TIKA_GOTENBERG_ENDPOINT

Value:    http://IP-of-gotenberg-container:3000/forms/libreoffice/convert#

 

 

http:// before IP seems to be important. Only IP didnt work for me.

Hope this helpes

 

11.thumb.jpg.b6a7f2284d08e88c5b235dbb35fbbed9.jpg

 

12e.thumb.jpg.4b0de344c4f56cdef5127837665215cd.jpg

 

13.thumb.jpg.664d981624d958036d379445b4ecad02.jpg

 

Edited by fk_muck1
removed URL from screenshot
  • Like 1
  • Thanks 3
Link to comment
  • 3 weeks later...
On 4/18/2022 at 12:25 AM, fk_muck1 said:

Until now i used docx, xlsx and pptx. All worked for me.

 

I'm getting this error when consuming pptx "Error while converting document to PDF: 503 Server Error:" gottenberg is installed and the endpoint seems to work.

Link to comment
  • 2 weeks later...

hi

after the last update I can't access my paperless from outsite
Last week it was working

 

 

 

grafik.png

 

the Log:

[WARNING] [django.security.csrf] Forbidden (Origin checking failed - https://paperless.mydomain.com does not match any trusted origins.): /accounts/login/

 

Edited by Abigel
Link to comment
2 hours ago, Abigel said:
[WARNING] [django.security.csrf] Forbidden (Origin checking failed - https://paperless.mydomain.com does not match any trusted origins.): /accounts/login/

The error contains everything you need to know. Your domain is not allowed to use paperless. Add it to the trusted domain config of paperless.

 

https://paperless-ng.readthedocs.io/en/latest/configuration.html

 

Quote

PAPERLESS_ALLOWED_HOSTS<comma-separated-list>

If you’re planning on putting Paperless on the open internet, then you really should set this value to the domain name you’re using. Failing to do so leaves you open to HTTP host header attacks: https://docs.djangoproject.com/en/3.1/topics/security/#host-header-validation

 

Just remember that this is a comma-separated list, so “example.com” is fine, as is “example.com,www.example.com”, but NOT ” example.com” or “example.com,”

 

Defaults to “*”, which is all hosts.

 

Link to comment
4 hours ago, mgutt said:

unRAID does not use compose. Simply create a new variable by editing the container if it does not already exist. 

 

 

Please tell me how
your link says "If you run paperless on docker, paperless.conf is not used. Rather, configure paperless by copying necessary options to docker-compose.env"

But I don't know how and where if there is not paperless.conf because it is a docker and there is no compose.env

Edited by Abigel
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.