Skip to main content

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.

The Jiandu library listing twelve filed documents. A sidebar shows tags, senders, kinds and years with counts, and each row shows a title, sender, kind, date and tags.The Jiandu library listing twelve filed documents. A sidebar shows tags, senders, kinds and years with counts, and each row shows a title, sender, kind, date and tags.
The library with twelve sample documents, filtered by tag, sender, kind and year. Captured from Jiandu 0.6.0.1 with fictional data.

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-portability writes 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-data
jiandu-portability verify-backup /backups/jiandu-2026-08-27
jiandu-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.

Scope and readinessSupport and evidence matrix

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.