Privipod
Privipod is a lightweight self-hosted service for sharing secrets and files.
It uses end-to-end encryption - all encryption and decryption happens entirely in your browser, so the server never sees your unencrypted data.
Read the full documentation.
Receive a secret
- Run Privipod somewhere both of you can access - for example, remotely on a VPS, or locally using ngrok.
- Create a "pod" - the browser generates a key pair, stores your private key locally, and sends the public key to the server.
- Share the pod URL with the sender.
- The sender visits the URL and their browser uses your public key to encrypt their secret, then sends it to the Privipod server.
- You collect the secret, and the browser uses your private key to decrypt it.
Send a secret
- Create a send pod with your secret, for another registered user or an anonymous recipient.
- The browser encrypts the secret with the recipient's public key - their identity key, or a one-off key pair for an anonymous recipient - and sends it to the server.
- Share the pod URL with the recipient, and for anonymous recipients, send the access code or key file separately.
- The recipient visits the URL, and their browser decrypts the secret.
Quick start
It's easiest to run with uv and ngrok:
# Start with a temporary database (data lost on shutdown)
uvx privipod
# Use ngrok to share with people outside your network
ngrok http 127.0.0.1:8000
Open http://localhost:8000 in your browser. See the
installation docs for
more deployment options.
Or you can install it and run it directly:
pip install privipod
privipod
ngrok http 127.0.0.1:8000
And it takes several arguments to customise it:
# Start with a permanent database and specify a username and password
uvx privipod --store=privipod.db --user=admin --pass=changeme 0:7000
Metadata
Release files for privipod 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| privipod-0.3.0.tar.gz | 68.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| privipod-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 148.3 kB
Release files / privipod-0.3.0.tar.gz
| Download URL | privipod-0.3.0.tar.gz |
|---|---|
| Size | 68.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bfdb50a5b9efe7fd22e9cabc79599d517f707f02ca1d15fd6a7719706c6e0059
|
|
BLAKE2b-256 checksum How to use checksums |
21df4316c8477879fc130d3b17f6e395311e27a47a78a878d527bb293ff5256e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Oct 2, 2026.
Transparency logRelease files / privipod-0.3.0-py3-none-any.whl
| Download URL | privipod-0.3.0-py3-none-any.whl |
|---|---|
| Size | 79.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2eaae0dbe5e0f72e8db5b4eb3d179e701f11ec3a23b798ccbe97778f4f4a4925
|
|
BLAKE2b-256 checksum How to use checksums |
73e96b698b811173688daf08d5a2fb686e67267c89a280b4df29b3ae30226d9f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
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 Oct 2, 2026.
Transparency log