Hour Share Documentation
Introduction
Hour Share is a local web tool for sharing files and text across devices on the same Wi-Fi network. It consists of a quick Node.js CLI runner and a Python Flask server that serves a web dashboard. By scanning a QR code, any device can instantly access the dashboard to upload, download, and share content β no internet connection or account required.
Features
- QR Connect β Scan a QR code from the dashboard to open it on any device in the same Wi-Fi.
- File Upload & Download β Upload files up to 100 MB each. Download with one click β password-gated.
- Text Sharing β Paste text, snippets, or links and share them instantly via the receive panel.
- Password Protection β bcrypt password per bundle and per group β secure even on shared networks.
- Auto-Expire β All bundles, groups, and their items auto-expire after 60 minutes β no disk clutter.
- Group Chat β Create or join a group with a name and password β share files and text in real-time.
Installation
Install globally via npm and run:
# Install globally npm install -g hourshare # Start Hour Share hourshare
Build from Source
# Clone the repository git clone https://github.com/Curzyori/hour-share.git cd hour-share # Set up Python environment python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt # Run the server directly python3 server.py
Tech Stack
- CLI: Node.js (vanilla, no deps)
- Server: Python 3.10+, Flask 3
- Frontend: Vanilla HTML/CSS/JS (no build step)
- Auth: bcrypt password per bundle
- Storage: File-based JSON (no DB)
- License: MIT
How It Works
Hour Share runs a Python Flask server on your local machine, serving a web dashboard over HTTP. The Node.js CLI (`hourshare`) launches the server in the background, opens the dashboard URL in your browser, and displays a QR code. Any device on the same Wi-Fi can scan the QR code to open the dashboard. Files and text are stored in JSON files on the server and expire after 60 minutes. Optional password protection uses bcrypt to keep your transfers secure.