Skip to content

Open Source Document Management System for Digital Archives (Scanned Documents)

License

Notifications You must be signed in to change notification settings

d3v53c/papermerge

 
 

Repository files navigation

Documentation Status Travis Docker Pulls Contributors

Papermerge

Papermerge - Document Management System

Papermerge is an open source document management system (DMS) primarily designed for archiving and retrieving your digital documents. Instead of having piles of paper documents all over your desk, office or drawers - you can quickly scan them and configure your scanner to directly upload to Papermerge DMS.

Papermerge DMS on its turn will OCR the document and index it. You will be able to quickly find any (scanned!) document using full text search capabilities.

It is built on Django 3.1.

Papermerge is actively developed and we release quite frequently.

This is web-based software. This means there is no executable file (aka no .exe files), and it must be run on a web server and accessed through a web browser.

Screenshot 01

Right Tool For You?

To be efficient you always need to choose right tool for the problem. Because Document Management is too generic - I think that a definition of what is a Document in context of this software is needed.

For Papermerge a document is anything which is a good candidate for archiving - some piece of information which is not editable but you need to store it for future reference. For example receipts are perfect examples - you don't need to read receipts everyday, but eventually you will need them for your tax declaration. In this sense - scanned documents, which are usually in PDF or TIFF format, are perfect match.

Out of scope (at least for near future) are Office documents (ODT, DOCX....), text files (notes) which usually are editable. In future Papermerge might support Office documents (ODT etc), but that feature will be provided as plugins.

Papermerge is simply not designed to store books. Yes, you can scan a book and import it in Papermege, but again - this is not what Papermerge was designed for.

Features

  • Documents of pdf, jpg, png, tiff formats are supported
  • Per page OCR of the documents
  • Full Text Search of the scanned documents
  • Tags - assign colored tags to documents or folders (screencast demo)
  • Documents and Folders - users can organize documents in folders
  • Multi-User
  • User permissions management
  • Document permissions management
  • REST API (screencast demo)
  • Page Management - delete, reorder, cut & paste pages (screencast demo)
  • Basic automation (screencast demo)

Testimonials

testimonials

Donations, Fundraising, Your Support

❤️ ❤️ ❤️

In case you find Papermerge useful, I modestly ask you to support Papermerge via a small donation. Even an amount as small as $9 will make a huge difference.

For donations, you can use three channels paypal, patreon and github itself:

💚 💚 💚

Live Demo

In live demo some of the features are disabled. For example you cannot manage users, API tokens. Folders/documents with a red lock are read-only for guest user.

  • Live demo
  • Username: guest
  • Password: password77a

Documentation and Other Resources

Papermerge has high quality, up-to-date and to the point documentation. Documentation contains lots of images, text and videos. It is regularly updated. If you spot outdated or incomplete article please open an issue on github - it will be handled immediately. Documentation issues have high priority.

Contributing

We welcome contributions! In general, if change is very small, like fixing a documentation typo, remove unused variable or minor adjustments of docker related files - you can create a pull request right away. If your change is small and reasonable it will be (very likely) almost immediately accepted.

For bigger changes, like a new feature or even change/add/remove of whole paragraph in documentation - please first discuss the change you wish to make via GitHub issue, pull request or email.

For more information, see the contributing file.

More Screenshots

Screenshot 02 Screenshot 03

Try it!

You can try it with just 3 simple commands (you need git and docker-compose):

git clone git@github.com:ciur/papermerge.git
cd docker/1.4/
docker-compose up

Docker compose command will pull all necessary docker images and start papermerge (stable 1.5.5 version) on http://localhost:8000. Access it with default username/password: admin/admin.

Installation

There are couple options:

Unit Tests

In order to run unit tests:

$ ./run_tests.sh

Which basically is same as:

$ DJANGO_SETTINGS_MODULE=config.settings.test
$ ./manage.py test papermerge/test/

Notice that you can pass any command line argument to run_tests.sh script and those arguments will be routed further to manage.py.

On multi-core processors it is much more efficient to use --parallel argument which splits test suite between CPU cores:

$ ./run_tests.sh  --parallel

On Dell-XPS laptop with 12-core i7 CPU it takes about 5 seconds to run all unit tests in parallel; without --parallel argument on same CPU it takes approximately 17 seconds to run them.

Another commonly used argument is --failfast. If --failfast argument is provided, a failed test will conveniently stop execution of entire test suite:

$ ./run_tests.sh --failfast

In order to run only views tests and stop if there is a failing test:

$ DJANGO_SETTINGS_MODULE=config.settings.test
$ ./manage.py test papermerge/test/views/ --failfast

Following command will run only tests from papermerge/test/views folder and show ALL python and django warnings:

$ DJANGO_SETTINGS_MODULE=config.settings.test
$ python manage.py -W all test papermerge/test/views/ 

Commercial Support

For commercial support, consulting and customization please contact us:

Other resources

About

Open Source Document Management System for Digital Archives (Scanned Documents)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 97.4%
  • Dockerfile 2.1%
  • Shell 0.5%