Plasn is a lightweight web app for generating:
- ASN label sheets for Paperless-ngx
- separator sheets for barcode-based document splitting
- overlay test sheets for label alignment on plain paper
The app runs fully client-side in the browser. No backend is required.
Plasn is built for Paperless-ngx users who want to:
- print ASN QR label sheets
- create barcode separator sheets for document splitting
- calibrate label output without wasting real label stock
Everything runs locally in the browser after the app has loaded. The server only delivers static files.
- ASN QR label generator with multiple A4 presets and custom label geometry
- Separate calibration profiles per label preset
- PDF download and direct printing
- Separator sheet mode using Code 128 barcodes
- Overlay test sheet PDF for alignment on plain paper
- German and English UI
- Open the live app.
- Choose your label preset or switch to separator sheets.
- Configure the values you need.
- Export a PDF or print directly.
- For label sheets, use the overlay test sheet first if your printer needs calibration.
This example shows Avery Zweckform L4731 labels printed with the default preset values.
The text options Show prefix in text and Show leading zeros in text were disabled.
The QR code still keeps the full ASN value with prefix and leading zeros; only the visible label text was reduced.
You can configure these values either via environment variables or directly in the Paperless-ngx UI under Configuration. If the same option is set in the UI, the UI value takes precedence over the environment variable. The examples below are for env-based setups such as Docker, Compose, or Unraid container settings.
PAPERLESS_CONSUMER_ENABLE_ASN_BARCODE=trueOptional if you use a different ASN prefix and for broader barcode handling or more robust detection:
PAPERLESS_CONSUMER_ASN_BARCODE_PREFIX=YOUR_PREFIX
PAPERLESS_CONSUMER_ENABLE_BARCODES=true
PAPERLESS_CONSUMER_BARCODE_SCANNER=ZXING
PAPERLESS_CONSUMER_BARCODE_DPI=600
PAPERLESS_CONSUMER_BARCODE_UPSCALE=1.5PAPERLESS_CONSUMER_ENABLE_BARCODES=trueOptional if you use a different separator string or want more robust barcode detection:
PAPERLESS_CONSUMER_BARCODE_STRING=YOUR_SEPARATOR
PAPERLESS_CONSUMER_BARCODE_SCANNER=ZXING
PAPERLESS_CONSUMER_BARCODE_DPI=600
PAPERLESS_CONSUMER_BARCODE_UPSCALE=1.5Plasn is also available as a public container image for self-hosted and offline-friendly deployments:
docker pull ghcr.io/peterthepeter/plasn-public:latest
docker run --rm -p 8080:80 ghcr.io/peterthepeter/plasn-public:latestAfter the container starts, open http://localhost:8080.
The plasn-public image is intended as the generic public build:
- it serves the app as a small static web container
- it bundles the UI and print fonts locally inside the image
- it does not require external runtime requests for fonts or analytics
- it avoids site-specific search engine metadata so it can be reused in company and on-prem environments
If you run into a bug or have an idea for an improvement, please open a GitHub issue.
Useful bug reports usually include:
- what you wanted to generate
- which preset or mode you used
- what happened instead
- browser and device details
- screenshots or sample output if helpful
Plasn is licensed under the GNU Affero General Public License v3.0 only (AGPL-3.0-only).
Built with the help of OpenAI Codex.