r/Paperlessngx • u/turalaliyev • 5h ago
One-liner Paperless V3 installer
Six months ago I posted about the document management setup I built for my family around Paperless-NGX V2, and later a one-command installer that stands the whole stack up on a fresh Ubuntu box.
Paperless-NGX v3.0.0 shipped, and one of the changes was folding LLM classification (title, tags, correspondent, document type, storage path suggestions) into the main app. So paperless-gpt, which was carrying that job for me, could finally go.
Did the upgrade end to end yesterday on my 1,805-doc library, ripped out the sidecar, wired v3's native AI up to Gemini, pushed the changes to the installer, and wrote up what I found.
The writeup (with the rollback plan and the one gotcha):
https://turalali.com/from-paperless-gpt-to-paperless-ngx-v3-dropping-a-container-cutting-complexity/
The installer (v3-native, one command on a clean Ubuntu box):
https://github.com/tural-ali/paperless-overconfigured
tl;dr for people looking at this exact migration:
- v3's AI covers everything paperless-gpt did for me. Suggestions drawer on every document details page: title, correspondent, doc type, tags, storage path, dates. Same underlying LLM, one fewer container to keep updated.
- Four config changes are forced by v3. Image tag pin,
PAPERLESS_DBENGINE: postgresql,PAPERLESS_OCR_MODE: skip_noarchive(renamed fromskip), dropPAPERLESS_OCR_SKIP_ARCHIVE_FILE. That's it. Everything else in my compose carried through unchanged. - The gotcha, if you want Gemini via the OpenAI-compat endpoint: every doc and tutorial names the embedding model
text-embedding-004. That value returns 404 through Google's OpenAI-compat gateway. The name that actually works isgemini-embedding-001. Blog explains why (different API surface routing under the hood). - Migration timing: 11 minutes on my box (1,805 docs). Django migrations + SHA-256 recompute + Whoosh → Tantivy index rebuild. No data loss, all workflows + mail rules + storage paths intact.
- Rollback: the migration doc explicitly has no downgrade path. You have to build your own with
pg_dumpandcp -alsnapshots before you flip the image tag. I've got the exact commands in the writeup. - Cost on Gemini paid tier: ~$0.54 one-time for the initial embedding rebuild, roughly $2/month steady-state at ~20 new docs/day. Google AI Studio free tier absorbed the whole rebuild without a rate-limit hit.
The installer wizard picks between Gemini (OpenAI-compat), OpenAI (native), or Ollama (local) during setup, and pins the Paperless image to 3.0.0 so nobody accidentally does a major-version upgrade unattended via docker compose pull.
Happy to answer questions on the migration or the installer.


