Papermerge alternatives and similar software solutions
Based on the "Document Management" category.
Alternatively, view Papermerge alternatives based on common mentions on social networks and blogs.
6.0 5.1 Papermerge VS TeedyLightweight document management system packed with all the features you can expect from big expensive solutions
Do you think we are missing an alternative of Papermerge or a related project?
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.
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.
- Documents of pdf, jpg, png, tiff formats are supported
- Desktop like user interface
- Per page OCR of the documents
- Full Text Search of the scanned documents
- User defined metadata per folder/document/page
- Import documents from multiple sources (local disk, email, web upload, REST API upload)
- Tags - assign colored tags to documents or folders (screencast demo)
- Documents and Folders - users can organize documents in folders
- Multi-User (Groups, Roles)
- User permissions management
- Document permissions management
- REST API (screencast demo)
- Page Management - delete, reorder, cut & paste pages (screencast demo)
- Basic automation (screencast demo)
Donations, Fundraising, Your Support
:heart: :heart: :heart:
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:
:green_heart: :green_heart: :green_heart:
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
At its very beginnings Papermerge perfectly fit into a single repository - this one.
As result, this repository is the central place for keeping track of releases, issues and discussions regarding Papermerge.
However, as source code grew and project accumulated more features - it morphed gradually into a monolithic giant. It is well known fact that dealing with monolithic architecture is very challenging. In order to deal with growing complexity, I decided to split the project into separate, reusable pieces. Each of resulting packages was moved one by one into Papermerge Organization.
Again, this repository is the central place to keep track of Papermerge issues.
Following is the list and a diagram of Papermerge projects ecosystem:
- Papermerge Core - Backend central piece. The heart of Papermerge. This is a python package.
- Papermerge CoreJS - Frontend central piece
- Dual Commander JS - Frontend's dual panel document browser. This is a nodejs package.
- Commander JS - Frontend's single panel document browser (used by dual commander). This is nodejs package.
- Viewer JS - Frontend's document viewer (used by Dual Commander). This is a NodeJS package.
- Uploader JS - Frontend's uploader component (used by Commander JS). This is a NodeJS package.
- Documentation - Sphinx based documentation repository.
At its very beginnings Papermerge perfectly fit into a single repository - this one. As result, this repository is the central place for keeping track of releases, issues and discussions regarding Papermerge. However, as source code grew, project accumulated more features - it resembled to more and more a monolithic giant. It is well known fact that dealing with monolithic architecture is very challenging. In order to deal with growing complexity, I decided to split the project into separate, reusable pieces. Each of resulting reusable package was moved one by one intoPapermerge Organization.
Following diagram, visually illustrates Papermerge projects organization.
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.
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.
[Screenshot 02](./img/screenshot-2.png) [Screenshot 03](./img/screenshot-3.png)
You can try it with just 3 simple commands (you need git and docker-compose):
git clone [email protected]:ciur/papermerge.git cd docker/ docker-compose up
Docker compose command will pull all necessary docker images and start papermerge on http://localhost:8000. Access it with default username/password: admin/admin.
There are couple options:
In order to run unit tests:
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
and those arguments will be routed further to
On multi-core processors it is much more efficient to use
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
is provided, a failed test will conveniently stop execution of entire test
$ ./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 -W all manage.py test papermerge/test/views/
For commercial support, consulting and customization please contact us: