Paperless-ngx: Scan and Search Everything
Installing Paperless-ngx
This server started as a way to keep entertainment off my phone and out of the cloud. But once it was stable, it kind of turned into a tiny home “office” server too.
So I added Paperless-ngx for documents: ingest, OCR, and search. It’s the same idea as Immich, but for PDFs instead of photos — and it stays LAN-only.
For this install, I kept it simple and used the official installation script, which sets up a Docker Compose deployment for you.
1. Create the paperless-ngx app folder
This is where I run the installer and keep the generated files.
sudo mkdir -p /srv/appdata/paperless-ngx
sudo chown -R $USER:$USER /srv/appdata/paperless-ngx
cd /srv/appdata/paperless-ngx
2. Run the installation script
This is the one-liner from the docs:
bash -c "$(curl --location --silent --show-error https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"
The script is interactive: it asks a few setup questions, generates the config + compose files, pulls images, and starts Paperless-ngx.
3. First login
Once it’s up, I access it by local IP from another device on my network: http://<server-ip>:8000 and create an admin account.
4. Workflow
Paperless-ngx is at its best when it’s boring:
- scan → upload / import → OCR → search later
Once it’s set, it’s just a quiet archive that makes paper stop piling up.