SnapDropX is a secure, zero-config local file drop server with upload support and optional authentication
Project description
๐ SnapDropX
Secure ยท Zero-Config ยท Local File Drop Server
SnapDropX is a modern, secure alternative to python -m http.server with a beautiful web UI, drag-and-drop uploads, authentication, and HTTPS support. Perfect for quickly sharing files between machines or within a local network.
โจ Features
๐ Secure by Default (Optional HTTP Basic Auth)
๐ค Drag & Drop File Uploads
โก Starts in under 1 second
๐จ Modern, responsive UI (Desktop + Mobile)
๐ Search & filter files
๐ก๏ธ Path traversal protection
๐ HTTPS support with self-signed SSL
๐ฅ๏ธ Preview
Clean, modern, mobile-friendly interface with drag-and-drop uploads.
๐ Installation
git clone https://github.com/vertexcrew/snapdropx.git cd snapdropx pip install -e .
โถ๏ธ Usage
Start server (current directory) snapdropx
Open in browser: http://localhost:8000
Serve specific directory snapdropx /path/to/files
Custom port snapdropx --port 8080
Enable authentication snapdropx --auth username:password
Browser will ask for username & password
Enable HTTPS (self-signed SSL) snapdropx --ssl
Full secure configuration snapdropx /data --port 8443 --auth admin:secret --ssl
Access from other devices (LAN) snapdropx --host 0.0.0.0 --port 8000 --auth user:pass
Open on phone / other PC:
http://YOUR_LOCAL_IP:8000
๐ API Endpoints
| Endpoint | Method | Description |
|---|---|---|
/ |
GET | List root directory |
/browse/{path} |
GET | Browse subdirectory |
/download/{path} |
GET | Download file |
/upload |
POST | Upload files |
/health |
GET | Health check |
๐ค Upload via curl
Single file curl -F "files=@file.txt" http://localhost:8000/upload
With authentication curl -u username:password -F "files=@file.txt" http://localhost
Multiple files curl -F "files=@a.txt" -F "files=@b.txt" http://localhost
Upload into subfolder curl -F "files=@file.txt" -F "path=subdir" http://localh
๐งช Development
Install dev dependencies pip install -e ".[dev]"
Run tests pytest tests/ -v
๐ Project Structure
snapdropx/ โโโ src/ โ โโโ snapdropx/ โ โโโ init.py โ โโโ main.py # CLI entrypoint โ โโโ server.py # FastAPI app โ โโโ security.py # Auth & path safety โ โโโ static/ โ โ โโโ style.css โ โโโ templates/ โ โโโ index.html โโโ tests/ โ โโโ test_snapdropx.py โโโ assets/ โ โโโ ui.png โโโ pyproject.toml โโโ README.md
๐ค Contributing git checkout -b feature/new-feature git commit -m "Add new feature" git push origin feature/new-feature
๐ Security Notes
Credentials are never stored in code
Each user sets their own username/password at runtime
Self-signed SSL may show browser warning (expected)
๐ License MIT License
โค๏ธ Author Made with โค๏ธ by Rayan GitHub: https://github.com/vertexcrew
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file snapdropx-1.0.0.tar.gz.
File metadata
- Download URL: snapdropx-1.0.0.tar.gz
- Upload date:
- Size: 14.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39d1db14fa4ce570a8c863eb8df0d0a8e5118f4fb9273639a1e54560fe379350
|
|
| MD5 |
07f7987b6a4173e51701a23b0de337ef
|
|
| BLAKE2b-256 |
9449510f1cdc6d0e213e486b73cc0ad8796681a90d3891f84672a6b8f5e41f5e
|
File details
Details for the file snapdropx-1.0.0-py3-none-any.whl.
File metadata
- Download URL: snapdropx-1.0.0-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7580948df90b2cdd6da0fab30dfe19b4976b183b7a188a0acc8b985322d85085
|
|
| MD5 |
15ce2a7724f3b68f03fe3611e0b458ef
|
|
| BLAKE2b-256 |
2d1e21bce666749a087656743039a561b2bded88b90f6e19619dfcab7f91848b
|