Metadata-Version: 2.4
Name: privipod
Version: 0.2.0
Summary: Lightweight self-hosted service for sharing secrets and files
Author-email: Richard Terry <code@radiac.net>
License-Expression: BSD-3-Clause
Project-URL: Homepage, https://radiac.net/projects/privipod/
Project-URL: Documentation, https://privipod.readthedocs.io/en/latest/
Project-URL: Repository, https://github.com/radiac/privipod
Project-URL: Issues, https://github.com/radiac/privipod/issues
Project-URL: Changelog, https://privipod.readthedocs.io/en/latest/changelog.html
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: nanodjango
Requires-Dist: click
Requires-Dist: django-style
Dynamic: license-file

# Privipod

[![Documentation](https://readthedocs.org/projects/privipod/badge/?version=latest)](https://privipod.readthedocs.io/en/latest/)
[![Tests](https://github.com/radiac/privipod/actions/workflows/ci.yml/badge.svg)](https://github.com/radiac/privipod/actions/workflows/ci.yml)
[![Coverage](https://codecov.io/gh/radiac/privipod/branch/main/graph/badge.svg)](https://codecov.io/gh/radiac/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](https://privipod.readthedocs.io/en/latest/).


## Receive a secret

1. Run Privipod somewhere both of you can access.
2. Create a "pod" - the browser generates a key pair, stores your private key locally,
   and sends the public key to the server.
3. Share the pod URL with the sender.
4. The sender visits the URL and the browser uses your public key to encrypt their
   secret, then sends it to the Privipod server.
5. You collect the secret, and the browser uses your private key to decrypt it.


## Quick start

It's easiest to run with [uv](https://docs.astral.sh/uv/):

```bash
# Start with a temporary database (data lost on shutdown)
uvx privipod

# Start with a permanent database and specify a username and password
uvx privipod --store=privipod.db --user=admin --pass=changeme
```

Or you can install it and run it directly:

```bash
pip install privipod
privipod
```

Open `http://localhost:8000` in your browser. See the
[installation docs](https://privipod.readthedocs.io/en/latest/install.html) for
deployment options (systemd, Docker, nginx, ngrok, Tailscale, Cloudflare Tunnel).
