Skip to content

PrivyNote is a minimalist, open-source platform for sharing encrypted notes that self-destruct after being read. It features end-to-end encryption, ensuring that even the server never sees the plaintext content of your notes.

Notifications You must be signed in to change notification settings

LatinCoder18/e2eprivnotes

Repository files navigation

PrivyNote - E2E Encrypted Secret Sharing

PrivyNote is a minimalist, open-source platform for sharing encrypted notes that self-destruct after being read. It features end-to-end encryption, ensuring that even the server never sees the plaintext content of your notes.

Features

  • E2E Encryption: AES-GCM (256-bit) encryption performed entirely in the browser.
  • Zero-Knowledge: The server stores only the ciphertext. The encryption key is never transmitted.
  • Self-Destruction: Notes are deleted immediately after being read (optional).
  • Expiration: Notes automatically expire after a set duration (10m, 1h, 1d, 7d).
  • Rate Limiting: Protection against abuse.
  • Privacy First: No tracking, no ads, no cookies, no localStorage.

Tech Stack

Local Development

  1. Clone the repository
  2. Install dependencies:
    npm install
  3. Setup Environment: Create a .env file based on .env.example:
    DATABASE_URL="postgresql://user:password@localhost:5432/privnote?schema=public"
  4. Run Database:
    docker-compose up -d db
  5. Apply Migrations:
    npx prisma migrate dev
  6. Start Dev Server:
    npm run dev

Docker Deployment

To run the entire stack with Docker:

docker-compose up --build

The application will be available at http://localhost:3000.

Security Considerations

  • Key in Fragment: The encryption key is stored in the URL fragment (#). Fragments are not sent to the server by browsers, maintaining zero-knowledge.
  • Token Hashing: The public identifier (token) is hashed using SHA-256 before being stored in the database.
  • Memory Safety: Ciphertext is handled as JSON payloads. Plaintext only exists in the client's memory during encryption/decryption.

About

PrivyNote is a minimalist, open-source platform for sharing encrypted notes that self-destruct after being read. It features end-to-end encryption, ensuring that even the server never sees the plaintext content of your notes.

Topics

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published