README_EN.md
January 26, 2026 · View on GitHub
QBin · Quick Storage
✨ A lightweight Cloud Note & PasteBin alternative. Save text, code, images, videos, and any content with just one click for easier sharing!
[English] · 简体中文 · [Demo Website] · Documentation · Self-hosting Guide · REST API
🖼️ Feature Preview
Mobile

Windows

📝 Project Introduction
QBin focuses on "fast, secure, and lightweight" online editing and content sharing, suitable for personal notes, temporary storage, team collaboration, cross-platform sharing, and many other scenarios.
- Frontend uses pure HTML+JS+CSS without heavy frameworks, featuring Monaco code editor, Cherry Markdown renderer, and a universal editor for various content types.
- Backend uses Deno Oak framework + PostgreSQL database, combined with Deno KV and Edge Cache for multi-level caching, providing excellent performance for both reading and writing.
- Built-in PWA and IndexedDB support lets you edit, save, and preview even when offline.
- Freely set access paths, passwords, and expiration dates for flexible sharing while protecting privacy.
- Compared to traditional PasteBin services, QBin offers richer editing capabilities, multi-layered security, and higher extensibility.
✨ Project Features
- 🚀 Simple Storage: Easily save text, code, images, audio/video, and other content with one-click sharing
- 🔒 Secure Control: Support for custom access paths and password protection
- ⏱️ Flexible Expiration: Set storage validity periods with automatic deletion of expired data
- 🌓 Light/Dark Mode: Support for dark/light/system theme for comfortable viewing day or night
- 📱 PWA Offline: Edit and access local cache without internet, take notes anytime, anywhere
- 🔄 Real-time Saving: Automatic periodic saving to local and remote storage to prevent data loss
- 🔑 Multiple Logins: Support for username/password and OAuth2 (Google, GitHub, Microsoft, custom)
- ♻️ Multi-level Cache: Combining Deno KV, PostgreSQL, Edge Cache, and ETag for faster access
- ⚡ One-click Deploy: Support for Docker Compose, Deno Deploy, and more for easy self-hosting
🚀 Quick Start Guide
- Visit a deployed QBin link (or local environment)
- Enter the default admin username and password
- After logging in, enter content or paste/drag-and-drop files in any editor (General/Code/Markdown)
- Set link path, expiration time, password protection (optional)
- Content is automatically saved and sharing links or QR codes are generated
- Visit the link to view or download content (password required if set)
For more detailed usage, please refer to the User Guide.
🔧 Technology Stack
Frontend:
- Pure HTML + JS + CSS (no third-party frameworks)
- Monaco code editor + Cherry Markdown + Universal editor
Backend:
- Deno Oak framework
- PostgreSQL database
- Deno KV & Edge Cache multi-level caching + ETag cache validation
Security and Authentication:
- JWT + username/password
- OAuth2 login (Google, GitHub, Microsoft, Custom)
⚡ Self-hosting Deployment
Several deployment methods are provided below.
Docker Compose (Recommended)
git clone https://github.com/Quick-Bin/qbin.git
cd qbin
docker-compose up -d
After running, visit http://localhost:8000 to start using. (Default admin account and password can be modified in docker-compose.yml)
Using Docker Directly
Suitable for environments with existing PostgreSQL:
# Pull the latest image
docker pull naiher/qbin:latest
# Start the container
docker run -it -p 8000:8000 \
-e DATABASE_URL="postgresql://user:password@host:5432/dbname" \
-e JWT_SECRET="your_jwt_secret" \
-e ADMIN_PASSWORD="qbin" \
-e ADMIN_EMAIL="admin@qbin.github" \
naiher/qbin
Then visit http://localhost:8000.
Tip: You can use free PostgreSQL from Neon, Aiven, or Render.
Other Deployment Methods
QBin can run on Deno Deploy, local Deno environments, and other platforms. See Self-hosting Guide for details.
🚀 TODO
- Implement end-to-end encryption
- Markdown, audio/video, image preview
- Personal dashboard
- Docker deployment support
- Third-party OAuth2 login (Google / GitHub / Microsoft / Custom)
- Multi-level hot-cold storage
- Mobile + light/dark/system theme adaptation
- ETag cache + IndexedDB local storage
- Custom storage path, password, and expiration
- Automatic local data backup
🤝 How to Contribute
- Fork this project
- Create a new branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m "Add amazing feature" - Push to the branch:
git push origin feature/amazing-feature - Create a Pull Request and wait for it to be merged
❤ Sponsorship Support
If QBin has helped you or your team, please consider sponsoring through Afdian to help the project continue to update and improve!
😘 Acknowledgments
Special thanks to the projects that provided support and inspiration:
License
This project is open-source under the GPL-3.0 license. Feel free to use and develop it further. Let's build an open and efficient cloud storage and sharing ecosystem together!