| bruno/Paperless NGX | ||
| out | ||
| res | ||
| tests | ||
| views/bootstrap | ||
| .gitignore | ||
| changelog.md | ||
| class.paperless.php | ||
| class.PaperlessView.php | ||
| conf.php | ||
| icon.svg | ||
| lang.php | ||
| paperless-postgres.sql | ||
| paperless-sqlite3.sql | ||
| paperless.sql | ||
| README.md | ||
SeedDMS paperless extension
This extension makes SeedDMS behave like a Paperless ngx server.
Paperless (and Paperless ngx) is another free document management system. It has a different focus than SeedDMS and misses many of the features of SeedDMS but there are various Android apps for uploading and browsing, which can be used for SeedDMS as well, if this extension is installed.
All apps are available at Google Play and/or f-droid.
paperless-mobile
This is the youngest but most feature complete app. It has all the features of both apps paperless and paperless-share. Google Play, f-droid.
paperless
This one is already a couple of years around but development has slowed down a bit. It supports listing and uploading documents.
paperless-share
This app just adds a share button. Any shared document will be uploaded to the server. Once the app was started it is mostly invisible.
PaperNext
PaperNext is a fairly new extension introduced in 2025. It is similar to paperless-mobile.
Paperless NGX Uploader
This is similar to paperless-share but a more recent development. Paperless NGX Uploader is an Android app and once configured, it allows to share a document with a Paperless NGX server. So it basically uploads a document and adds some tags.
Paperless-AI
This is not an app for your mobile phone but a desktop application. Here is what Paperless-AI says about itself.
"Paperless-AI is an AI-powered extension for Paperless-ngx that brings automatic document classification, smart tagging, and semantic search using OpenAI-compatible APIs and Ollama."
For paperless-ai you need to clear the jwt-secret in the configuration,
if the configured token in paperless-ai is the REST API token. If
jwt-secret is set, you have to create a token by calling the paperless
REST API call /api/token. Since version 1.5.0 of this extension you
can also find a valid token for each user in the user management.
There is a very detailed description in german of Paperless-AI at https://hobbyblogging.de/ai-fuer-paperless-ngx
How it works
The extension adds additional routes and a so called middleware to the REST API. The middleware is just for handling the token based and basic authentication of paperless. Because this middleware applies to all routes of the REST API, even the existing routes may use the new authentication methods.
Installation
Install this extension like any other extension by uploading the
zip file in the extension manager or copy the content of this
repository into a directory paperless in SeedDMS' extension
directory www/ext.
Up to version 1.4.0 you need to import one of the database files
- paperless.sql (MySQL)
- paperless-sqlite3.sql (SQLite3)
into your database. With version 1.5.0 database migration will take place when enabling the extension in the extension manager. Version 1.5.0 also add postgresql support.
You can test the extension by accessing http://<your-seeddms>/restapi/index.php/api/
with your browser. It should return a json object containing various links.
Restrictions
The concept of paperless is quite different from SeedDMS. Fortunately, there are hardly any features in paperless which cannot be simulated in SeedDMS. Nevertheless, there are some notable differences and some minor restrictions, you should be aware of.
Deleting Correspondents and Document types
Correspondents and Document types cannot be deleted if they are used by documents. This is a precaution because both operations cannot easily be undone.
Fulltext search
This extension use the fulltext search for most operations. Hence, ensure to setup fulltext search before using it.
Authentication
Paperless uses a token based or http basic authentication. Both are implemented in SeedDMS by an additional slim middleware. There is no session, but the token is encrypted and stores all the required data to identify the user, including a lifetime which can be set in the configuration. Once that lifetime has ended the token becomes invalid and the user has to relogin. The password to encrypt the token can also be set in the configuration. Once the password changes all token will become invalid and users will have to relogin.
Archive
Paperless has the notion of an archive, which does not exist in SeedDMS. There is also no archive serial number.
Document formats
Paperless stores documents preferably as PDF and has a strong focus on scanned documents additionally run through OCR. It also does some document classifying based on the content. This is not supported by SeedDMS, but can be added with other extensions.
Tags
Tags in Paperless are equivalent to categories in SeedDMS with some restrictions. A category in SeedDMS does not have a color and cannot be marked as an inbox tags. SeedDMS deriveѕ the color from the category name and this extension can configure a list of categories, which are treated as inbox tags.
Document Types
There is no direct equivalent to Document Types in SeedDMS, but they can be easily simulated with a custom attribute. Since version 1.0.1 of this extension the configuration contains a parameter for an attribute which must be a value set. It has to contain the different document types. Do not make it a multi value attribute, because a document in Paperless may have only one type. Add more types when you need it or changing the order is possible at any time.
Correspondents
Just like Document Types, there is a second attribute for correspondents. It's implemented in SeedDMS just like document types.
Folder hierachy
Paperless does not have folders. Consequently, SeedDMS disolves its folder hierarchy and delivers all documents like they were stored in one single folder. If a document is uploaded by one of the paperless client apps, it will be stored either in the root folder or a configured upload folder. Moving documents at its right place must be done within SeedDMS. Which documents are actually visible also depends on which root folder is used by this extension. The root folder can be set in the configuration or can be the user's home folder.
Well, paperless seems to have a different concept called 'storage path'. Though that's not like folder paths in SeedDMS but it's worth a try to map the both. Since version 1.2.0 of this extension, the storage paths will resolve on folder paths in SeedDMS.
Searching for documents
The extension enforces any search to be limited to released documents.
Searching for similar documents
There is some experimental support for searching for similar documents. This is done by extracting the most frequent words from the content and using them to issue a second query with this list of words. Since this list of most frequent words can be very long it will be reduced. For a word to qualify for the query
- it must be longer than 4 characters
- have a frequency greater 2
If less than five words meet these conditions, the list will be filled up with subsequent words from the most frequent word list. If the than executed query doesn't yield a result the list will be diminished again word by word until the search succeeds or the query is empty.
Changing meta data
The app paperless-mobile has support for editing meta data and even the content of a document. Currently, this extension only supports editing the correspondent and the tags of a document. All other changes made in paperless mobile we be disregarded.