Skip to main content

A simple tool to share files and directories over LAN or internet.

Project description

ShareDir

ShareDir is a Python tool to share files and directories over LAN or the internet with a single command. It runs a production-ready HTTP server (Waitress) with passphrase protection, QR code access, file uploads, and a modern web interface.

Features

  • Share files and directories with one command
  • QR code generation (terminal + in-browser)
  • Passphrase protection with brute-force blacklisting
  • Production-ready server (Waitress) with configurable workers
  • File upload support with progress bar (optional)
  • Directory ZIP download
  • File metadata display (size, modified date, MIME type)
  • HTTP Range request support (video seeking)
  • Client-side search/filter
  • Dark mode (default) with light mode toggle
  • Download buttons for files and directories
  • Access logging (IP, method, path, status)
  • Auto-expiry (--expire)

Installation

Via pip

pip install sharedir

Via uv

uv tool install sharedir

From source

git clone https://github.com/spignelon/ShareDir.git
cd ShareDir
pip install -r requirements_headless.txt

Usage

sharedir /path/to/share

Options

Flag Description
-p N, --passphrase-length N Number of words in passphrase (default: 4)
--no-passphrase Disable passphrase protection
-P PORT, --port PORT Server port (default: 44447)
-w N, --workers N Number of server workers, 1 worker = 4 threads (default: 1)
--upload Enable file uploads via web interface
--expire DURATION Auto-shutdown after duration (e.g. 30m, 2h, 1d)

Examples

# Share a directory with a 6-word passphrase on port 8080
sharedir ~/movies -p 6 -P 8080

# Share without passphrase, with uploads enabled
sharedir ~/public --no-passphrase --upload

# Auto-shutdown after 2 hours
sharedir ~/files --expire 2h

Output:

Generated passphrase: grape-apple-banana-orange
Access URL: http://192.168.1.100:44447/?passphrase=grape-apple-banana-orange
Starting server on 0.0.0.0:44447 with 1 workers (4 threads)...

Requires Python >= 3.10.

License

GNU AGPLv3.0
GNU AGPLv3.0

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

sharedir-2.0.2.tar.gz (24.4 kB view details)

Uploaded Source

Built Distribution

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

sharedir-2.0.2-py3-none-any.whl (23.0 kB view details)

Uploaded Python 3

File details

Details for the file sharedir-2.0.2.tar.gz.

File metadata

  • Download URL: sharedir-2.0.2.tar.gz
  • Upload date:
  • Size: 24.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for sharedir-2.0.2.tar.gz
Algorithm Hash digest
SHA256 83a312487cd1414e75cab229f1c9ad7cc31cf1d1c201bcb20ed96af8a0a46db6
MD5 90de708a04904ffa2cea1fed4ca46dd8
BLAKE2b-256 86edcec37e46d01663775e47267aa9775c0f211330333d9213181a12e4239316

See more details on using hashes here.

File details

Details for the file sharedir-2.0.2-py3-none-any.whl.

File metadata

  • Download URL: sharedir-2.0.2-py3-none-any.whl
  • Upload date:
  • Size: 23.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for sharedir-2.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 87d32c33b49fdb8ea77cd53c70b1a0e6384b56f1f4f0be5c479ba5a089d4f89b
MD5 f8b33a0901624057d2dd080f085a56ae
BLAKE2b-256 d87b540b5ce50328e9b1cf9aacb899b28a089b77e48ffe897c3e7f33cee903fd

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