Skip to main content

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

SnapDropX Web UI

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

snapdropx-1.0.0.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

snapdropx-1.0.0-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

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

Hashes for snapdropx-1.0.0.tar.gz
Algorithm Hash digest
SHA256 39d1db14fa4ce570a8c863eb8df0d0a8e5118f4fb9273639a1e54560fe379350
MD5 07f7987b6a4173e51701a23b0de337ef
BLAKE2b-256 9449510f1cdc6d0e213e486b73cc0ad8796681a90d3891f84672a6b8f5e41f5e

See more details on using hashes here.

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

Hashes for snapdropx-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7580948df90b2cdd6da0fab30dfe19b4976b183b7a188a0acc8b985322d85085
MD5 15ce2a7724f3b68f03fe3611e0b458ef
BLAKE2b-256 2d1e21bce666749a087656743039a561b2bded88b90f6e19619dfcab7f91848b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page