Self-hosted document management for one household.
Jiandu keeps a household’s PDFs and photos in one searchable library. Originals are stored exactly as they arrived, on local disk, S3-compatible storage or WebDAV. A backup counts only once you have restored it somewhere else.


What it does
- Add
Upload PDF, JPEG, PNG and text files in the browser, or let a watched folder, network scanner, cloud folder or Gmail connector deliver them. Each original is stored untouched.
- File
Give each document a title, sender, kind, date and tags. Smart filing proposes rules from your repeated corrections and asks before automating anything; a manual edit always wins.
- Find
Search covers each document’s filing details and whatever text Jiandu has indexed. Filters narrow by tag, sender, kind and year, and a search can be saved as a quick filter.
- Share
The library is shared with the household by default. Through the native API, an exceptional document can be restricted to named people or groups, and an Administrator does not see it unless granted access.
- Recover
jiandu-portabilitywrites a recovery backup, verifies it, and restores it into a new destination. The documentation counts a backup as complete only after that restore has worked somewhere else.jiandu-portability backup /backups/jiandu-2026-08-27 --data-dir /srv/jiandu-datajiandu-portability verify-backup /backups/jiandu-2026-08-27jiandu-portability restore /backups/jiandu-2026-08-27 /srv/jiandu-restored- Automate
Manage accounts, roles, groups, per-document grants, capture and Gmail connectors through the native API, using expiring personal access tokens.
Where it stands
- Maturity
Evolving software. Try it with non-critical samples first; the support matrix separates what is implemented from what has release evidence.
- Distribution
Built from source with Docker Compose. There are no release packages yet.
- Repository
Access is required today. Without it, the source-built evaluation path is unavailable.
- License
None yet. Default copyright applies until a license is chosen.
- Deployment
One Jiandu process per installation. SQLite by default; PostgreSQL 17 and 18 are supported. Originals live on local disk, S3-compatible storage or WebDAV.
- Privacy
Remote telemetry is off. A new installation listens on loopback only, until you configure HTTPS access.
Try it locally
The reviewed path builds Jiandu from a source checkout with Docker Compose and Caddy, and needs repository access. Use files that are not sensitive.
git clone https://github.com/zhyuri/jiandu.git
cd jiandu
docker compose -f examples/docker-compose/docker-compose.yml up --build
# In a second terminal:
./examples/docker-compose/bootstrap-local-account.sh
Open https://jiandu.localhost once your browser trusts Caddy’s local certificate. The quickstart covers prerequisites, preserving the Owner recovery credential, and a first-document check.
Where to start
- Evaluate it on your machine
Build the Compose example, add one sample document, and check that you can get the original back.
- Join a household that runs Jiandu
Sign in, add a document, and find it again.
- Set it up for your household
Choose an installation method, then HTTPS, storage, a database and sign-in.
- Connect an automation client
Make an authenticated request with a scoped token.
- Move from Paperless-ngx
Import a checked sample and reconcile the exceptions.
- Compare it with other tools
Weigh Jiandu against Paperless-ngx, Nextcloud, Mayan EDMS and a plain file archive.