Minimal Flask app to share files with anyone on the same network. Files are stored in the local shared/ folder.
# from the repo root
python -m venv venv
./venv/Scripts/activate
pip install -r requirements.txt
# optional: set passwords
$env:FTAPP_VIEW_PASSWORD = "yourviewpass" # optional password to view files
$env:FTAPP_UPLOAD_PIN = "youruploadpin" # optional PIN for uploads
# run the server on all interfaces so other devices can reach it
$env:FTAPP_HOST = "0.0.0.0"
$env:FTAPP_PORT = "8000"
python app.pyThen, on another device on the same Wi-Fi, open http://<your-PC-LAN-IP>:8000.
Tips for finding your LAN IP:
- Windows: run
ipconfigand look for the IPv4 Address on your active adapter. - The web UI also shows detected LAN URLs when the server is running.
- Scan the QR codes on the page with your phone's camera to open directly.
- Multi-file uploads
- Drag-and-drop uploads with visual feedback
- Upload progress bar
- QR codes for easy access
- Real-time updates via WebSockets
- Optional password protection for viewing files
- Optional upload PIN
- File previews for images, PDFs, and text files
- Delete files from the web UI
- ZIP download for selected files
- Mobile-responsive design
- Uploads (single or multiple files) go to
shared/next toapp.py. - Drag files onto the drop zone or select via file picker.
- Files are listed on
/with size and last modified time. GET /files/<name>serves files for download or inline viewing.GET /preview/<name>shows previews for supported file types.POST /delete/<name>removes a file (with confirmation).POST /download_zipcreates and serves a ZIP of selected files.- Real-time updates via WebSockets when files are uploaded/deleted.
GET /healthreturns a tiny status JSON.
SECRET_KEYinapp.pyis a random string used by Flask to secure sessions and cookies. Change it to a unique value (e.g., generate a random string) if you expose the app beyond local/LAN to prevent session hijacking.- No authentication is included beyond optional passwords; run only on trusted networks.
- The app is single-process and not tuned for very large files.