An encrypted personal cloud built on the AT Protocol.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 75 lines 2.2 kB view raw view rendered
1<!-- 2 NOTE TO EDITORS: 3 Opake uses a dual-documentation system. If you modify the technical details, 4 command list, or installation steps in this README, you MUST also update 5 the corresponding MDX content in `web/src/content/` to prevent 6 documentation drift. 7--> 8 9# Opake 10 11**/oʊˈpɑːk/** — like "opaque," but built for the AT Protocol. 12 13An encrypted personal cloud where privacy and collaboration are no longer a tradeoff. Opake uses your PDS as a blind storage layer. Files are encrypted client-side (AES-256-GCM) before they ever touch the network. 14 15Your data is opaque to everyone without the key. That's the point. 16 17[The Handbook](https://opake.app/docs) · [Issue Tracker](https://tangled.org/sans-self.org/opake.app/issues) · [Architecture](docs/ARCHITECTURE.md) 18 19## Quick Start 20 21### 1. Install 22 23Requires Rust 1.75+. 24 25```sh 26cargo install --path crates/opake-cli 27``` 28 29### 2. Login 30 31Authenticates via OAuth (DPoP), generates a 24-word seed phrase, and publishes your public encryption key. 32 33```sh 34opake login you.bsky.social 35``` 36 37Write down the seed phrase when prompted — it's your recovery key for all devices. 38 39### 3. Use 40 41```sh 42opake upload secret.pdf --tags confidential 43opake share secret.pdf bob.bsky.social 44opake ls --long 45``` 46 47## How It Works 48 491. **Encrypt:** Plaintext → AES-256-GCM (random key K). 502. **Wrap:** Key K → X25519-HKDF-A256KW (wrapped to your DID). 513. **Publish:** Ciphertext blob + Metadata record → PDS. 52 53No modifications to the PDS. All crypto happens on your machine. 54 55## Repository Structure 56 57- `opake-core/` — Platform-agnostic library (Rust/WASM). 58- `opake-cli/` — CLI implementation. 59- `appview/` — Elixir/Phoenix indexer for grant discovery. 60- `web/` — React SPA (Vite + TanStack). 61- `lexicons/` — AT Protocol schemas (`app.opake.*`). 62 63## Development 64 65```sh 66cargo test # Rust tests 67bun run wasm:build # Build WASM for web 68mix setup # Setup AppView 69``` 70 71See [CONTRIBUTING.md](CONTRIBUTING.md) for the "mini-nuke" policy and commit conventions. 72 73## License 74 75[AGPL-3.0](LICENSE) — see [docs/LICENSING.md](docs/LICENSING.md) for what this means for self-hosters, plugin developers, and contributors.