Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

pless

A searchable archive of your documents, on hardware you own.

CI Docs

pless sets up and operates a self-hosted Paperless-ngx installation — on a Raspberry Pi, a cloud server, or a local VM — with two properties most self-hosting guides skip:

  • Encrypted at rest. Documents live on a LUKS2 volume whose key is never stored on the machine. A stolen box is a brick.
  • Invisible on your LAN. After hardening, nothing listens on your local network. Paperless is bound to localhost and SSH answers only over Tailscale.

[!WARNING] Alpha. pless cannot yet import documents or take backups — those are the next two milestones. Don't put your only copy of anything on it.

📖 Documentation →

Getting started, installation, maintenance and a cookbook live on the docs site.

Quick look

git clone https://github.com/kschulst/pless.git
cd pless
uv tool install --editable .

pless init --secrets
pless doctor

Then follow Installation.

Status

Capability Status
Provisioning, encrypted storage, deployment ✅ Working
Tailscale access, LAN hardening, exposure audit ✅ Working
Raspberry Pi target 📋 Documented, awaiting hardware validation
Hetzner Cloud target 📋 Code and unit tests, not validated live
Importing documents ❌ Not built
Backup, restore, restore drills ❌ Not built
Web setup wizard ❌ Planned

Verified end to end on Debian 13 and Ubuntu 24.04.

Development

uv sync
uv run pytest
uv run ruff check .
uv run ruff format .
zensical serve      # docs at http://localhost:8000

See CONTRIBUTING.md for the full development guide, and adr/ for why the architecture is the way it is.

Work in progress lives in issues.

Licence

MIT. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pless-0.1.0a1.tar.gz (46.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pless-0.1.0a1-py3-none-any.whl (42.1 kB view details)

Uploaded Python 3

File details

Details for the file pless-0.1.0a1.tar.gz.

File metadata

  • Download URL: pless-0.1.0a1.tar.gz
  • Upload date:
  • Size: 46.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pless-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 9a5d181f3645a8af80cd1c56abcc2ce9d1c8f0d8881f02a2201f89674497f4ce
MD5 0da4e095e3c0b7d51ee4da3f08da36b1
BLAKE2b-256 f609dc1866cd81961cde3fdd6f21083c42142f15ba96f4d90aba72c2865bbff0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pless-0.1.0a1.tar.gz:

Publisher: release.yml on kschulst/pless

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pless-0.1.0a1-py3-none-any.whl.

File metadata

  • Download URL: pless-0.1.0a1-py3-none-any.whl
  • Upload date:
  • Size: 42.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for pless-0.1.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 35ec154d024e3cb4f4d087b90a49924f9daf3587bdd2151a284d76e6253159af
MD5 320f3f43363e6a6ef306b22cc93a84a1
BLAKE2b-256 847309a0cde99bf4d9eb3a837d8f51ba2f4146dbfce23f2e9287365a7c610633

See more details on using hashes here.

Provenance

The following attestation bundles were made for pless-0.1.0a1-py3-none-any.whl:

Publisher: release.yml on kschulst/pless

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page