Skip to main content

A Flask-based command line file sharing application.

Project description

Dropit – Local HTTPS file drop

Dropit is a small Flask app that lets you share files with other devices on the same network. It runs a local HTTPS server with a drag-and-drop UI for uploading, downloading, and deleting files.

Install

pip install dropit

Python ≥ 3.6 is supported.

Commands and flags

dropit [--password <password>] [--geturl] [--getqr] [--maxsize <GB>] [--version]
  • --password <password>: enable Basic Auth with username admin.
  • --geturl: print the server URL in color to the terminal.
  • --getqr: render the URL as an ASCII QR code in the terminal.
  • --maxsize <GB>: maximum upload size in gigabytes (default: 2).
  • --version: print the installed Dropit version and exit.

Examples:

# start server and print URL
dropit --geturl

# start server and show an ASCII QR
dropit --getqr

# require a password (user: admin)
dropit --password "mypassword"

# allow larger uploads (10 GB)
dropit --maxsize 10

# just show the installed version
dropit --version

Quick start

dropit --geturl

Then, from another device on the same network, open the URL shown (e.g., https://<your-ip>:5001). Because the certificate is self-signed, your browser will show a warning; proceed/accept for your local session.

What you get

  • Local HTTPS server on port 5001 (self-signed cert generated on the fly).
  • Drag-and-drop upload UI with file list (type/size) plus download/delete actions.
  • Optional Basic Auth: set a password and use the fixed username admin.
  • Handy discovery: print the URL (--geturl) and an ASCII QR code (--getqr).
  • Upload size limit configurable via --maxsize (default 2 GB).
  • Files are stored under your home directory in sharex ($HOME/sharex on Linux/macOS, %USERPROFILE%\\sharex on Windows). The exact resolved path is printed on startup.

Using the web UI

  • Upload: drag files into the drop zone or click to choose files, then hit Upload Files.
  • Download/Delete: use the action chips next to each file in the list.
  • Storage: uploaded files are saved to sharex under your home directory ($HOME/sharex on Linux/macOS, %USERPROFILE%\\sharex on Windows).

Authentication

  • Default: open access.
  • To require a password: start with --password mysecret. Sign in as admin with that password. Basic Auth is only enforced when a password is provided.

Troubleshooting

  • Browser warning about HTTPS: the app uses an ad-hoc self-signed cert; choose “proceed” for your local session.
  • Can’t reach the URL: ensure devices are on the same network and that port 5001 is allowed through firewalls.
  • Upload fails due to size: increase --maxsize to the number of gigabytes you need.

Contributing

Issues and pull requests are welcome. For significant changes, please open an issue first to discuss what you’d like to adjust.

Contribution flow

  • Branch from master (e.g., feature/... or fix/...).
  • Make your change. If it affects behavior, note how to verify in the PR.
  • Quick local checks:
    • Create/activate a virtual env to avoid polluting your global Python: python3 -m venv .venv && source .venv/bin/activate (on Windows: python -m venv .venv then .venv\Scripts\activate)
    • pip install . (ensure dependencies and console entry work)
    • dropit --version (standalone; prints the version and exits)
    • dropit --geturl or dropit --getqr (separate run; starts the server and prints URL or QR, shows the resolved storage path)
  • Push your branch and open a PR against master with a short description and verification steps.
  • Releases: bump dropit/__version__, tag vX.Y.Z, and push the tag to trigger the publish workflow.
  • For larger contributions: discuss design/approach in an issue first, keep PRs focused, and add tests/docs alongside code changes so reviewers can validate quickly.

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

dropit-0.1.16.tar.gz (45.9 kB view details)

Uploaded Source

Built Distribution

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

dropit-0.1.16-py3-none-any.whl (43.2 kB view details)

Uploaded Python 3

File details

Details for the file dropit-0.1.16.tar.gz.

File metadata

  • Download URL: dropit-0.1.16.tar.gz
  • Upload date:
  • Size: 45.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dropit-0.1.16.tar.gz
Algorithm Hash digest
SHA256 869361fa76fca6d35118869e659600dcf4a48b47e7611577bd52aab5294faf11
MD5 9b27fd0276ab39d451161d19fa76528d
BLAKE2b-256 220f4483d7b7c8b6f166878324f24f5beeb1dab9632c3a31e847690b5e5ffeb3

See more details on using hashes here.

File details

Details for the file dropit-0.1.16-py3-none-any.whl.

File metadata

  • Download URL: dropit-0.1.16-py3-none-any.whl
  • Upload date:
  • Size: 43.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for dropit-0.1.16-py3-none-any.whl
Algorithm Hash digest
SHA256 fa3c3f60d02f0334f9191d147e97af1be20a85e05a59a37add33f29c68c15a17
MD5 4f0fa185617a8af213d031073e8db7db
BLAKE2b-256 a79ee98ebaf1fa0dfc622b52ad3fa27989a877719b5a3d357bef204fa35e4b43

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