Introduction
Kurpod
Hide your private files inside ordinary photos and documents. Even if someone finds them, they'll see exactly what you want them to see.
What is Kurpod
A single encrypted blob that stores your files.
Installation
Docker one-liner or 8 MB binary.
Quick Start
Create blob, set password, drag files.
Hidden Volumes
Optional second password, undetectable.
Beta release - expect rough edges.
Hide 1,000 photos inside "vacation.jpg". Store tax records as "music_playlist.mp3". Your secret files, disguised as innocent documents.
Try it in 30 seconds
docker run -p 3000:3000 -v ./data:/app/data ghcr.io/srv1n/kurpod-server:latest
open http://localhost:3000
Or download the binary:
# Auto-install for Linux/macOS
curl -L https://github.com/srv1n/kurpod/releases/latest/download/install.sh | bash
# Then run
kurpod_server
How it works
- Drag your files into KURPOD (photos, documents, anything)
- Name it something innocent → "Grandma's_Recipe.docx"
- Set two passwords:
- 🔓 Fake Password → Shows harmless content (for nosy people)
- 🔒 Real Password → Reveals your actual files (only for you)
Someone forces you to unlock it? Give them the fake password. They see recipes. Your real data stays invisible.
Three things to know
| Keep it | Share it | Deny it |
|---|---|---|
| Private - files encrypted before server sees them | Portable - one blob file to backup/move | Hidden - optional 2nd password, undetectable |
Technical bits
- XChaCha20-Poly1305 (256-bit key, 192-bit nonce)
- Argon2id (64 MiB, 3 passes)
- 8 MB binary, 30 MB Docker image
Beta limitations
- Single-user only
- No built-in HTTPS (use reverse proxy)
- Plausible deniability isn't magic - adversary can still demand multiple passwords
- Not audited yet - expect bugs
Get help
- Installation - More install options
- Hidden volumes - How the 2nd password works
- GitHub - Report bugs
Built in Rust. Uses public crypto: XChaCha20-Poly1305 + Argon2id.
Beta release. Back up your blobs.

