Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Privater

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.

Features

  • 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 .enc containers 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_files and decrypt_files commands

Requirements

  • Rust stable toolchain
  • Node.js and npm
  • Windows is the currently tested target

Build

build.bat

The script installs frontend dependencies, builds the embedded web application, builds optimized Rust binaries, and publishes:

  • privater.exe
  • encrypt_files.exe
  • decrypt_files.exe

Build products, dependency folders, vault data, encrypted containers, and executables are excluded from Git.

Run

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.

Security boundaries

  • 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.

License

MIT. See LICENSE.

About

No description, website, or topics provided.

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages