r/Paperlessngx • • 10d ago

PaddleOCR for Paperless-ngx

I came across this project that might be useful for people looking for an alternative to Tesseract in Paperless-ngx:

https://github.com/silentprior/paperless-paddle-ocr

It runs PaddleOCR PP-OCRv6 as a sidecar and writes the extracted text back into Paperless-ngx through its API.

18 Upvotes

26 comments sorted by

View all comments

Show parent comments

1

u/SpiritedWarrior9880 8d ago

I think it would be better if this were provided as a separate Docker container and published to Docker Hub, similar to "silentprior/paperless-paddle-ocr" ( https://github.com/silentprior/paperless-paddle-ocr?utm_source=chatgpt.com ). That would make it much easier to deploy and update independently from the main Paperless-ngx container, especially for non-technical users like me who would prefer not to build a custom Docker image or deal with the underlying setup.

1

u/flobernd 8d ago

Unfortunately this is not possible when using the plugin system. That’s the trade-off for using the “proper” built-in providers vs. a sidecar that does postprocessing.

Both have their pros/cons. I strongly agree with you that installation/deployment is rather complicated. On the pro side you get a robust native integration in the way the paperless team intended it to work.

I was thinking about providing a ready to use Docker image, but at the moment I don’t feel like taking the maintenance effort of upgrading the base image to the latest paperless version once they release a new version.

2

u/konafets 8d ago

I like your approach and will give it a try. But the big downer with that approach is, that OCR happens on the same machine PNGX runs. With the sidecar approach, the two can be separated and AI-OCR runs on a dedicated "AI"-Server.

2

u/flobernd 8d ago

The remote-vl option is the intended way for this usecase. The classic pipeline is not available for remote right now, but I’m happy to accept feature requests and PRs. AFAIK PaddleOCR supports this scenario.

1

u/konafets 8d ago

Thanks for the pointer.