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.17.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.17-py3-none-any.whl (43.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dropit-0.1.17.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.17.tar.gz
Algorithm Hash digest
SHA256 5e00a9ce333d3bab3d1b716360931a30161e18672a471721a7dd46f87369bd4e
MD5 bbdca8bc31e3aaf9628a7f8b4b6dda4f
BLAKE2b-256 af5c8264794b9e090b25da64bf9e9148672284df56933c6f5e0998c83b5d2ab3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: dropit-0.1.17-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.17-py3-none-any.whl
Algorithm Hash digest
SHA256 b6ae3ceb3be2b9909311f495dcbd539bc06df1d770b3fa513e642db4f7c8f2dc
MD5 b621595dfde34fe5416addd22ebe6cf1
BLAKE2b-256 e2112c1ff56cdd0b91cf78ef66627ecb2d9e4fae9967da6655e831962126c61b

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