
Deploy Paperless-ngx Barcodes
Split batch scans and auto-number documents with barcodes
paperless-ngx
Just deployed
/usr/src/paperless/data
Redis
Just deployed
/data
Just deployed
/var/lib/postgresql/data
Deploy and Host self hosted Paperless-ngx Barcodes (Barcode Splitting and Tagging for Scanned Documents) on Railway
Paperless-ngx Barcodes deploys Paperless-ngx with barcode features on, so one batch scan splits into documents at separator sheets and each document can take an ASN or tags from a printed barcode.
About Hosting Paperless-ngx Barcodes open-source software on Railway (self hosted Paperless-ngx barcode splitting, ASN and tag barcodes template)
This template runs the official Paperless-ngx 3.3.0 image as the paperless-ngx service on port 8000, with a Railway volume at /usr/src/paperless/data for your data, media, and consume directories.
Why Deploy Paperless-ngx Barcodes, the Evernote alternative on Railway (Railway Free Trial)
Evernote is a closed SaaS note app, and its paid tiers charge monthly for something you can't inspect or move.
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Paperless-ngx Barcodes on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Railway vs Other Hosting Providers and VPS for Paperless-ngx Barcodes self hosting
Paperless-ngx Barcodes runs as three services plus a volume, so the host decides how much you assemble yourself.
| Provider | What You Get with Railway | What You Get with the Other Provider |
|---|---|---|
| DigitalOcean | App, Postgres, Redis and a volume from one template. | A Droplet you patch and wire up yourself. |
| AWS | The same services wired together, with no IAM or security group setup. | Full EC2 and EBS control, with more setup time. |
| Hetzner | A public https domain for PAPERLESS_URL without a reverse proxy. | Cheap dedicated CPU and RAM, but you run the stack and backups. |
Choose Railway for a working barcode setup in an afternoon, and a VPS if you want to tune the hardware yourself.
Common Use Cases for hosted Paperless-ngx Barcodes
- Splitting a multi-invoice batch: Print PATCH-T separator sheets and slip one between each invoice. Paperless drops each separator and turns the pages between them into their own documents.
- Numbering incoming letters: Turn on PAPERLESS_CONSUMER_ENABLE_ASN_BARCODE and print a unique ASN00123-style code on each cover sheet. Each letter gets a stable serial number, and a repeated ASN gets rejected.
- Tagging paper by client: Enable PAPERLESS_CONSUMER_ENABLE_TAG_BARCODE and print sheets such as TAG:invoice. Tags match case-insensitively, so capitals still land on the right tag.
- Splitting a mixed batch at tag pages: Set PAPERLESS_CONSUMER_TAG_BARCODE_SPLIT=true so each tag page marks a boundary. Each document only inherits the tags from its own pages.
- Tuning scan DPI and page limits: Start with PAPERLESS_CONSUMER_BARCODE_DPI at 300 and raise it to 600 when small barcodes get missed. Set PAPERLESS_CONSUMER_BARCODE_MAX_PAGES to limit checking on very long batches.
Dependencies for Paperless-ngx Barcodes Docker hosted on Railway
This template runs three services: the paperless-ngx app, Postgres, and Redis as the Celery broker.
Deployment Dependencies for Managed Paperless-ngx Barcodes Service (Document Archive)
The deploy pulls ghcr.io/paperless-ngx/paperless-ngx:3.3.0 and exposes it on public port 8000.
Implementation Details for Paperless-ngx Barcodes (Using Paperless-ngx official docker image)
Every barcode setting is a service variable. Add PAPERLESS_CONSUMER_ENABLE_BARCODES=true, since detection is off by default.
How does Paperless-ngx Barcodes compare against other ways to split and tag batch scans by barcode with Paperless-ngx, Evernote, DEVONthink, Docspell and Mayan EDMS
Paperless-ngx Barcodes vs Evernote (Evernote Alternative)
- Barcode splitting: Paperless-ngx cuts one batch scan into documents at separator sheets. Evernote has no equivalent.
- ASN and tag barcodes: Each letter can carry its own barcode, so filing happens at scan time.
- Cost and control: Paperless-ngx is GPL-3.0 and runs on your own Railway account.
- Where Evernote wins: Its note-taking and cross-device sync are far more polished.
Paperless-ngx Barcodes vs DEVONthink (DEVONthink Alternative)
- Platform: Paperless-ngx runs in a browser on any machine, while DEVONthink is a macOS and iOS app.
- Barcode workflow: Paperless-ngx splits and numbers documents from PATCH-T separators during consumption. DEVONthink relies on local indexing and AI-assisted organization instead.
- Where DEVONthink wins: Its offline indexing and Apple integration suit a single Mac user.
Paperless-ngx Barcodes vs Docspell (Docspell Alternative)
- Community: Paperless-ngx has a larger community and more published barcode documentation.
- License: Paperless-ngx is GPL-3.0, while Docspell is AGPL-3.0, which matters if you modify and host it for others.
- Where Docspell wins: Its automation pipelines may suit power users who need deeper processing.
Paperless-ngx Barcodes vs Mayan EDMS (Mayan EDMS Alternative)
- Scope: Mayan EDMS is a heavier enterprise system, while Paperless-ngx stays focused on households and small offices.
- Barcode handling: Paperless-ngx turns separator, ASN and tag barcodes on through environment variables.
- Where Mayan EDMS wins: Its granular permissions and workflow engine suit formal approval chains.
How to use Paperless-ngx Barcodes (the OSS document management system)?
- Open the paperless-ngx service in Railway's variables panel and set PAPERLESS_CONSUMER_ENABLE_BARCODES=true.
- Optionally set PAPERLESS_CONSUMER_ENABLE_ASN_BARCODE=true and PAPERLESS_CONSUMER_ENABLE_TAG_BARCODE=true, plus PAPERLESS_CONSUMER_TAG_BARCODE_SPLIT=true for tag-based splitting.
- Leave PAPERLESS_CONSUMER_BARCODE_STRING at its default PATCHT and print PATCH-T separator sheets, both sides.
- Set PAPERLESS_CONSUMER_BARCODE_DPI=600 if small barcodes are missed, and PAPERLESS_CONSUMER_BARCODE_MAX_PAGES to limit checking on long batches.
- Upload the batch scan through the web UI, mobile app, API, or mail fetching at your PAPERLESS_URL domain.
- Check the Metadata tab for stored barcode values after setting PAPERLESS_CONSUMER_STORE_BARCODE_VALUES=true.
PAPERLESS_CONSUMER_ENABLE_BARCODES=true
PAPERLESS_CONSUMER_ENABLE_ASN_BARCODE=true
PAPERLESS_CONSUMER_ENABLE_TAG_BARCODE=true
PAPERLESS_CONSUMER_TAG_BARCODE_SPLIT=true
PAPERLESS_CONSUMER_BARCODE_STRING=PATCHT
PAPERLESS_CONSUMER_BARCODE_DPI=600
PAPERLESS_CONSUMER_BARCODE_MAX_PAGES=20
PAPERLESS_CONSUMER_STORE_BARCODE_VALUES=true
How to self host Paperless-ngx Barcodes on other VPS Services (Paperless-ngx self hosting guide)
Running Paperless-ngx Barcodes on your own VPS takes a few steps. You'll need Docker and a domain pointed at the server.
Clone the Repository
Pull the official project and move into its Compose folder.
git clone https://github.com/paperless-ngx/paperless-ngx.git
cd paperless-ngx/docker/compose
Install Dependencies
Install Docker and the Compose plugin. A host with 2 GB of RAM handles barcode detection on batch scans comfortably.
sudo apt update
sudo apt install -y docker.io docker-compose-plugin
sudo systemctl enable --now docker
Configure Environment Variables
Copy the example env file and set your public URL plus the barcode options. Barcode support is off by default, so you have to switch it on.
cp docker-compose.env.example docker-compose.env
PAPERLESS_URL=https://your-domain
PAPERLESS_CONSUMER_ENABLE_BARCODES=true
PAPERLESS_CONSUMER_ENABLE_ASN_BARCODE=true
PAPERLESS_CONSUMER_BARCODE_STRING=PATCHT
PAPERLESS_CONSUMER_BARCODE_DPI=300
Start the Paperless-ngx Barcodes Application
Start the containers in the background and create your admin account.
docker compose up -d
docker compose exec webserver createsuperuser
Railway handles the reverse proxy, TLS certificate, and persistent volume for you, so none of these steps are needed there.
Official Pricing of Paperless-ngx Barcodes (Paperless-ngx pricing)
Paperless-ngx is free and open source under GPL-3.0, and the project sells no paid tier or managed cloud.
Paperless-ngx Barcodes cloud vs self hosted comparison (Pricing, features, costs, and more)
Paperless-ngx has no official paid cloud, so you choose between a third-party host and running the stack yourself.
Monthly cost of self hosting Paperless-ngx Barcodes on Railway
Expect roughly $5 to $15 a month on Railway for a small personal archive, rising as the volume holding your scans grows.
System Requirements for Hosting Paperless-ngx Barcodes on a VPS
Paperless-ngx runs on a Raspberry Pi, but barcode detection and OCR are slow on a weak CPU, so a small x86 VPS is the safer pick.
Frequently Asked Questions (FAQs)
Why are my separator pages not splitting the batch?
Check that PAPERLESS_CONSUMER_ENABLE_BARCODES is set to true, since barcode support is off by default.
Does the separator page appear in the output?
By default no, the separator page is discarded and the next page starts a new document.
How do I avoid a blank page at the start of each document?
Print the separator barcode on both sides of the sheet.
What happens when an ASN barcode repeats an existing ASN?
The document is not consumed and an error is logged. Make sure each ASN barcode you print is unique before you scan the batch.
Can I scan from a home scanner straight into the consume folder?
Not directly, because the consume folder on the Railway volume is not reachable from a home scanner.
Do I need to store barcode values to search them?
Only if you want them searchable.
Template Content
paperless-ngx
ghcr.io/paperless-ngx/paperless-ngx:3.3.0Redis
redis:8.2