Skip to content

Changelog

All notable changes to saneless are recorded here. The format follows Keep a Changelog, and saneless uses Semantic Versioning.

Unreleased

Added

  • A next image tag, which moves to the newest release, candidate or final. See Image tags.

0.2.0 - 2026-10-05

The first release, 0.2.0.

Added

  • A web UI for scanning from any device on the local network. A status strip checks the configuration, the scanner, paperless-ngx, the profiles, the fallback folder and the data folder, and the scan's status updates live. Only the browser that started a scan sees its title, preview and error text. See First Web UI Scan.
  • The saneless command line: scan, devices, jobs, serve, auto-profiles and doctor, with documented exit codes for scripting. See CLI Commands.
  • Scan profiles in saneless.toml, and saneless auto-profiles, which writes them from what the scanner reports. See Configure Scan Profiles.
  • Duplex scanning through the document feeder, in hardware or by flipping the stack by hand, and multi-page documents built from several scans into one PDF. See Set Up ADF Duplex Scanning and Scan a Multi-Page Document.
  • Empty-page detection, which drops blank pages from every scan, flatbed or feeder. See Empty Page Detection.
  • A consume-directory fallback that saves the PDF to a folder paperless-ngx watches when the paperless-ngx API cannot take the upload. See Consume Directory Fallback.
  • A container image published to the GitHub Container Registry, with build provenance and an SBOM you can verify. See Docker.
  • This documentation site, at kdknigga.github.io/saneless.

Security

  • The web UI has no login, by design: it is an appliance for a trusted local network. See What an unauthenticated client can read.
  • A Host check answers only requests that name saneless's own host names, which stops DNS rebinding. See Host check.
  • Same-origin checks reject cross-site requests that change state. See Cross-site requests.
  • The paperless-ngx token is kept out of logs and error messages: text about a paperless-ngx request has the token struck out before it is shown or logged, and a config error names the setting, never its value.