Paperless-ngx: A self-hosted document archive that trades encryption for searchability
A community-supported supercharged document management system: scan, index and archive all your documents
At a glance
- What is it?
- Paperless-ngx scans, indexes, and archives documents into a searchable web archive. It is a community successor to Paperless and Paperless-ng, but stores everything in clear text and must not run on untrusted hosts.
- Who is it for?
- Adopt Paperless-ngx if you want a self-hosted, searchable document archive and can run it on a local server you control, with backups in place. Skip it if you need encryption at rest or want to run on a shared or untrusted host; the project explicitly warns against that.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What it solves and who it is for
Paperless-ngx is a document management system that turns physical documents into a searchable online archive. The README's tagline is direct: "so you can keep, well, less paper." The target user is someone with a pile of invoices, tax records, or contracts who wants to scan them once and find them later without digging through folders. It is for individuals or small teams who can run their own server. The project is the official successor to the original Paperless and Paperless-ng projects, which matters because it means there is a migration path and an active maintenance team. The README describes it as "community-supported" and invites people to join teams for frontend, CI/CD, and other areas. This is not a hosted SaaS; you run it yourself, and the documentation emphasizes local deployment.
How it works: scan, index, and archive
The core workflow is scan, index, and archive. You feed documents into the system, it processes them, and you end up with a searchable archive. The README does not detail the internal pipeline, but the feature list points to the documentation for a full list. What is visible from the repository is that it is a Python application with a web frontend, and it uses Docker Compose for deployment. The screenshots show a document list with small cards, suggesting a web interface for browsing and searching. The indexing part is what makes it different from a simple file server: you can search the text content of scanned documents, not just filenames. The archive part means you can store the originals and retrieve them. The README does not specify OCR engines or database backends, so I cannot confirm those details. But the architecture is clear enough: a backend service processes documents, a web UI lets you interact, and Docker handles packaging.
Getting it running: Docker Compose and an install script
The easiest deployment path is Docker Compose. The README points to the /docker/compose directory, which contains files configured to pull the image from the GitHub container registry. For a quick start, there is an install script: bash -c "$(curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)". That script sets up a Docker Compose environment. Alternative installation methods are in the documentation under /setup/#installation. For existing Paperless-ng users, migration is described as easy: "just drop in the new docker image." That is a strong claim, and the README links to a migration guide for details. If you are not using Docker, you would need to check the documentation for bare-metal or other options. The README does not list system requirements, so you cannot know minimum RAM or disk from this material.
The security warning: clear text, no encryption
The most important limitation is in the README's Important Note. It states: "Paperless-ngx should never be run on an untrusted host because information is stored in clear text without encryption." That is a hard boundary. Scanned documents often contain sensitive data like social insurance numbers, tax records, and invoices. If you run this on a cloud VPS or any host you do not fully control, the data is readable by anyone with access to the storage. The README does not promise security; it says "No guarantees are made regarding security (but we do try!)" and you use it at your own risk. The recommended setup is "a local server in your own home with backups in place." This is not a minor caveat. It means the project is the wrong tool if you need encryption at rest or compliance that requires it. You could layer encryption at the filesystem level, but that is your responsibility, not the project's.
Why you might choose it over a plain file server
A simple file server with folders can store scans, but it cannot search inside them. Paperless-ngx adds indexing, which is the core value. The README's feature list is not detailed here, but the promise of a "searchable online archive" is the differentiator. For someone with thousands of documents, searching by text content is far faster than opening files. The web interface, shown in screenshots, provides a visual way to browse and filter. The project also supports multiple languages, coordinated on Crowdin, which is a practical feature for non-English users. Compared to a NAS with a folder structure, Paperless-ngx gives you a purpose-built tool. The trade-off is complexity: you need to run a Docker service, manage backups, and deal with the clear-text storage issue. For a single user with a few dozen documents, a folder structure might be simpler. For anyone with a growing archive, the indexing pays off.
A real alternative: Paperless-ng (the predecessor)
The direct alternative is Paperless-ng, the project that Paperless-ngx succeeded. The README explicitly names it as the predecessor, and the migration path is to "just drop in the new docker image." The difference in approach is that Paperless-ng was maintained by a single person, while Paperless-ngx distributes responsibility among a team. That is a governance difference, not a feature difference. If you are already on Paperless-ng, switching is low effort because the image is compatible. If you are starting fresh, you would choose Paperless-ngx because the predecessor is no longer the active project. Another category of alternative is commercial document management software, but the README does not mention any, so I cannot compare. The key point is that Paperless-ngx is not the only self-hosted option, but its direct lineage makes it the natural upgrade path for existing users.
Maintenance and license implications
The project is under GPL-3.0, which means you can use, modify, and distribute it, but any derivative work must also be GPL-3.0. For personal use, that is rarely a concern. For a company that wants to embed it in a proprietary product, it would be a problem. The README does not discuss licensing beyond the repository metadata, so I am not giving legal advice, just noting the license identifier. Maintenance is active: the last push is August 2026, and recent releases include v3.1.0, v3.0.5, and v3.0.4. That suggests a regular release cadence. The project is community-supported, meaning no commercial SLA. You rely on volunteers and the Matrix room for support. The README encourages contributions and lists teams for frontend and CI/CD, which indicates a structured maintenance model. For upgrades, the Docker image approach means you can pull new versions, but you should check the release notes for breaking changes. The README does not specify an upgrade procedure, so you would need to consult the documentation.
Editorial conclusion
Adopt Paperless-ngx if you want a self-hosted, searchable document archive and can run it on a local server you control, with backups in place. Skip it if you need encryption at rest or want to run on a shared or untrusted host; the project explicitly warns against that. Before deploying, verify your scanner produces compatible formats and check the migration guide if you are coming from Paperless-ng, since the README says you can simply drop in the new Docker image, but you should confirm your existing data and settings carry over in your version.
Community notes