Skip to content

Latest commit

 

History

History
145 lines (108 loc) · 6.03 KB

File metadata and controls

145 lines (108 loc) · 6.03 KB

QBin · Quick Storage

QBin LOGO

✨ 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

Mobile photos

Windows

Windows photos

📝 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

  1. Visit a deployed QBin link (or local environment)
  2. Enter the default admin username and password
  3. After logging in, enter content or paste/drag-and-drop files in any editor (General/Code/Markdown)
  4. Set link path, expiration time, password protection (optional)
  5. Content is automatically saved and sharing links or QR codes are generated
  6. 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

  1. Fork this project
  2. Create a new branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m "Add amazing feature"
  4. Push to the branch: git push origin feature/amazing-feature
  5. 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!

QBin Sponsor

😘 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!