Paperless-ngx
An open-source document management system that turns physical papers into a searchable, organized digital archive. Self-hosted, OCR-powered, and built to eliminate paper clutter forever.
Smart Download
Visit Project Homepage
No installer available yet — head to the source repository
Self-hosted document management with OCR, search, and AI classification — your personal digital filing cabinet.
Core Features
- Automatic OCR in 100+ languages
- Machine learning classification and tagging
- Full-text search with filters (date, type, tags)
- Email, camera, and scanner integration
- Responsive web UI for desktop and mobile
What It Can't Do
- •Do not expose directly on public internet; documents are stored unencrypted in plain text. Use LAN or VPN only.,OCR accuracy for handwriting is limited; ensure scanned documents are clear for best results.
Use Cases
- Home: digitize receipts, contracts, medical records, warranties
- Freelancers / small teams: manage invoices, contracts, client files
- Digital hoarders: turn physical books, notes, clippings into searchable knowledge base
Detailed Introduction
Paperless-ngx is a community-driven document management system (DMS) that scans, indexes, and archives your physical documents into a fully searchable online library. It automatically extracts text via OCR, classifies documents with machine learning, and provides a clean web interface to tag, search, and retrieve any document instantly. Unlike cloud solutions, you host it yourself — keeping your sensitive data private. The project is the official successor to Paperless and Paperless-ng, with an active team and regular updates. It supports multi-user, multi-language, email ingestion, and integrates with tools like Nextcloud, Home Assistant, and more. A live demo is available for testing.
Troubleshooting & FAQ (2)
TroubleshootingWhy does Paperless-ngx fail with 'input (681 tokens) is too large to process. increase the physical batch size' when using llama.cpp for embeddings?
The error occurs because the embedding backend (llama.cpp) receives an input larger than its configured physical batch size (-b 512). To fix, increase the batch size in the llama.cpp command to at least 1024 (e.g., -b 1024). Alternatively, use an embedding model that supports larger input sizes. Paperless-ngx currently hardcodes RAG_CHUNK_SIZE to 1024, which can cause this issue for models with smaller context windows; a future update may allow adjusting this value.
TroubleshootingWhy are tags not saving when using bulk edit in Paperless-ngx?
Known issue when running Paperless-ngx under ASGI (e.g., Granian) with PostgreSQL and psycopg3. The bulk modify_tags operation silently fails because the M2M write occurs in a different database transaction that never commits. Workaround: Edit tags from the document detail view (PATCH /api/documents/{id}/) where the operation succeeds. Alternatively, if possible, switch to a WSGI server (e.g., Gunicorn) to avoid the async/sync boundary problem. Track the GitHub issue #12699 for a permanent fix.
Tags
Getting Started
Download installer
Click the button above to download the installer for your system
Install the software
Double-click the downloaded installer and follow the prompts
Step 1: Ensure Docker and Docker Compose are installed
Step 2: Run one-liner: bash -c "$(curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"
Step 3: Follow prompts to configure ports and storage, then access http://localhost:8000 to create admin account
- Step 1: Ensure Docker and Docker Compose are installed
- Step 2: Run one-liner: bash -c "$(curl -L https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"
- Step 3: Follow prompts to configure ports and storage, then access http://localhost:8000 to create admin account
Checksum not available
This project has not published a SHA-256 checksum on its GitHub Release page
SHA256 Checksum
No checksum available
Download directly from GitHub Releases and verify file integrity yourself
All SHA-256 checksums on this platform are extracted from the project's official GitHub Release page, without any modification. You can independently verify them on the GitHub Releases page.
Open Source Transparency
View GitHub SourceUninstall Info
Stop containers and remove volumes: docker compose down -v. To fully purge, delete the persistent data directory (e.g., /mnt/paperless). Always back up important documents first.
No Extra Dependencies
Ready to use after download. No additional runtime required.
Having issues? Check the FAQ below
2 FAQs
Similar Projects
Nextcloud Server
Nextcloud Server is a free, self-hosted productivity platform that puts you in control of your files, contacts, calendars, and communication.
Karakeep
Karakeep is a self-hostable all-in-one bookmarking app with AI features to save, organize, and search links, notes, images, and PDFs.
copyparty
copyparty turns any device into a file server with resumable uploads/downloads using any web browser. Supports HTTP, WebDAV, SFTP, FTP, TFTP, SMB. Only requires Python (2 or 3).