https://github.com/arc53/pastevault
Encrypted paste sharing with zero-knowledge architecture. Share code, text, and markdown securely with automatic expiry and burn-after-read options.
https://github.com/arc53/pastevault
Last synced: 3 months ago
JSON representation
Encrypted paste sharing with zero-knowledge architecture. Share code, text, and markdown securely with automatic expiry and burn-after-read options.
- Host: GitHub
- URL: https://github.com/arc53/pastevault
- Owner: arc53
- License: gpl-3.0
- Created: 2025-08-27T19:20:19.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-08-27T22:18:08.000Z (5 months ago)
- Last Synced: 2025-08-28T04:19:59.593Z (5 months ago)
- Language: TypeScript
- Homepage: https://pastevault.dev
- Size: 180 KB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PasteVault
An open-source, E2EE pastebin with a VS Code-like editor

## Quickstart
### A) One command (Node.js)
Requirements: Node.js 18 or 20 and npm.
```bash
npx pastevault up
```
### B) Docker Compose (all-in-one)
Requirements: Docker and Docker Compose.
```bash
git clone https://github.com/arc53/pastevault.git
cd pastevault
docker compose -f docker-compose.all.yml up -d
```
- Frontend: http://localhost:3000
- Backend: http://localhost:3001
Shutdown:
```bash
docker compose -f docker-compose.all.yml down
```
## Features
- End-to-end encryption (XChaCha20-Poly1305) with client-side key generation
- Zero-knowledge: decryption key kept in URL fragment (#), never sent to server
- Optional password mode (PBKDF2) and per-paste expiry/burn-after-read
- Markdown support with code syntax highlighting
- Simple REST API with validation and rate limiting
- SQLite (default) or PostgreSQL storage
## Minimal configuration
Backend (.env):
```env
DATABASE_URL=postgresql://pastevault:pastevault_dev_password@localhost:5432/pastevault
DATABASE_PROVIDER=postgresql
PORT=3001
CORS_ORIGIN=http://localhost:3000
```
Frontend (.env.local):
```env
# Important: include /api at the end
NEXT_PUBLIC_API_URL=http://localhost:3001/api
```
## License
GNU General Public License v3.0