Privater 3.0.0 is a local-first file gallery launched from a command line. It displays ordinary files and self-contained encrypted .enc containers in one browser interface, with image thumbnails, pagination, filtering, uploads, downloads, deletion, moves, encryption/decryption, and text editing.
Privater is a personal privacy tool, not an independently audited cryptographic product. Keep backups. A forgotten passphrase or salt cannot be recovered.
- Rust/Axum backend with an embedded React frontend
- Mixed plain and encrypted files, with encrypted items marked by a lock badge
- XChaCha20-Poly1305 authenticated encryption, Argon2id key derivation, and HKDF-SHA-256 key separation
- Independently portable
.enccontainers with encrypted filenames, metadata, thumbnails, and content - Optional deterministic hashed container names
- Responsive thumbnail grid, pagination, live filename filtering, selection, and lightbox
- Drag-and-drop uploads with progress and rename/overwrite conflict handling
- Single and ZIP downloads, deletion, subfolder switching, and file moves
- Markdown source/live preview and UTF-8 editing for Markdown, JSON, TOML, and text files
- JSON validation in the browser and backend
- Batch
encrypt_filesanddecrypt_filescommands
- Rust stable toolchain
- Node.js and npm
- Windows is the currently tested target
build.batThe script installs frontend dependencies, builds the embedded web application, builds optimized Rust binaries, and publishes:
privater.exeencrypt_files.exedecrypt_files.exe
Build products, dependency folders, vault data, encrypted containers, and executables are excluded from Git.
privater.exe "<vault-folder>" --salt "<salt>"The app binds to 127.0.0.1 and selects an available port by default. Useful options:
--address <ip> Bind another interface; non-loopback values expose the app to the LAN
--port <port> Use a fixed port; 0 selects an available port
--no-open Do not open the browser automatically
--read-only Disable modifications
--hide-filenames Store encrypted containers under deterministic hashed names
The salt is not secret, but the identical salt and passphrase are required to decrypt containers. Neither is stored by Privater.
See CLI documentation, API documentation, and architecture.
- The default loopback mode is intended for one trusted computer.
- LAN mode uses HTTP and should only be used on a trusted network.
- The bearer token is generated for each process and kept in browser session storage.
- Decrypted previews and downloads can be exposed to the browser, operating system, antivirus software, backups, or malware while the app is unlocked.
- Several large-file paths buffer complete files in memory.
- The container design has not received an independent cryptographic audit.
Please report security issues privately as described in SECURITY.md.
MIT. See LICENSE.