Skip to main content
                    _ _            _
       __   _____| | | __ _ _ __(_)___
       \ \ / / _ \ | |/ _` | '__| / __|
        \ V /  __/ | | (_| | |  | \__ \
         \_/ \___|_|_|\__,_|_|  |_|___/

Files only the people you choose can read.

End-to-end encrypted document sharing you self-host.

pip install vellaris

Source · PyPI · Docs · License


Status

v0.2.0 — feature drop. Alpha; expect rough edges. The on-wire format is still locked, so blobs encrypted with any v0.x release keep decrypting on later versions.

What v0.2 adds on top of the v0.1 baseline:

  • Web Worker for crypto. RSA-4096 keygen and Argon2id-at-prod-params no longer block the main thread on signup or login. The EncryptAnim actually animates instead of stuttering.
  • IndexedDB-backed key store. The wrapped private key now lives in IDB, with one-shot migration from any pre-existing localStorage entry.
  • Streaming uploads. The upload route reads files via File.stream() instead of file.arrayBuffer(), so the SPA no longer trips ArrayBuffer size limits on multi-hundred-megabyte uploads.

Plus the v0.1.3 → v0.1.5 fixes already in: owner-visible "shared with" chips on /doc/:id, manual Cloudflare pageviews on the public auth routes only (no leak past login), and a strict-ish Content-Security- Policy on the SPA.

How it works

Vellaris encrypts files on your device with a fresh AES-256 key, then encrypts that key once for each recipient with their RSA-4096 public key. Your self-hosted server only ever holds ciphertext, encrypted-DEK rows, and a signed audit log — it cannot decrypt anything.

crypto: AES-256-GCM · RSA-4096 OAEP-SHA256 · Argon2id passphrase KDF

Three clients, one trust boundary

Client Install When to reach for it
CLI pip install vellaris Engineers, scripts, CI pipelines
Python SDK pip install vellaris Automations, ETLs, webhook handlers
Web Static SPA, deploy-anywhere Colleagues who don't live in a terminal

Every client speaks the same on-wire protocol; the server publishes its contract at /openapi.json.

Run a server

Docker

Pull the slim image (~120 MB, SQLite + local FS only):

docker pull ghcr.io/subhayu99/vellaris:0.5.0

Or the full image (~350 MB, every DB and cloud storage backend bundled):

docker pull ghcr.io/subhayu99/vellaris:0.5.0-full

For a tailored configuration (e.g. Postgres + S3 only) and a copy-paste docker run command, use the deployment configurator.

License

Apache 2.0. No CLA traps. Read every line on GitHub.

Metadata

Release files for vellaris 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vellaris 0.7.0
File Size Uploaded
vellaris-0.7.0.tar.gz 104.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vellaris 0.7.0
File Interpreter ABI Platform
vellaris-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 190.3 kB

Release files / vellaris-0.7.0.tar.gz

Download URL vellaris-0.7.0.tar.gz
Size 104.8 kB
Tags Source
SHA-256 checksum
How to use checksums
dc169a25c8e4f0a0a443ab2c4c9aeacf2a7a5905d7108f84dc4be1094f52472b
BLAKE2b-256 checksum
How to use checksums
c0236cca3349de558dc431b709ac32aefbc3dd2b9fd8bd74e445c6de51752add
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 5, 2026.

Transparency log

Release files / vellaris-0.7.0-py3-none-any.whl

Download URL vellaris-0.7.0-py3-none-any.whl
Size 85.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
71263163916528782ecf10c42171a076d88a0bf9c638324734910d0cf84672b6
BLAKE2b-256 checksum
How to use checksums
7ed373ed03edca5ac3ca9ac640cab959e19f0c223d06b2c283b9382be5d90b5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files

0.6.0

2 release files

0.5.7

2 release files

0.5.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page