Updog is a replacement for Python's SimpleHTTPServer.
It allows uploading and downloading via HTTP/S,
can set ad hoc SSL certificates and use HTTP basic auth.
Installation
Install using pip:
pip install updog
Or using pipx (recommended for CLI tools):
pipx install updog
For development:
git clone https://github.com/sc0tfree/updog.git
cd updog
poetry install
poetry run updog
Usage
updog [-d DIRECTORY] [-b ADDRESS] [-p PORT] [--password PASSWORD] [--ssl | --ssl-cert CERT --ssl-key KEY] [--cors] [--hide-base-path]
| Argument | Description |
|---|---|
| -d DIRECTORY, --directory DIRECTORY | Root directory [Default=.] |
| -b ADDRESS, --bind ADDRESS | Bind to specific address [Default=0.0.0.0] |
| -p PORT, --port PORT | Port to serve [Default=9090] |
| --password PASSWORD | Use a password to access the page. (No username) |
| --ssl | Enable SSL with ad-hoc certificate |
| --ssl-cert CERT | Path to custom SSL certificate |
| --ssl-key KEY | Path to custom SSL private key |
| --cors | Enable CORS headers |
| --hide-base-path | Hide full directory path (show relative paths) |
| --version | Show version |
| -h, --help | Show help |
Examples
Serve from your current directory:
updog
Serve from another directory:
updog -d /another/directory
Serve from port 1234:
updog -p 1234
Password protect the page:
updog --password examplePassword123!
Please note: updog uses HTTP basic authentication. To login, you should leave the username blank and just enter the password in the password field.
Use an SSL connection (ad-hoc certificate):
updog --ssl
Use an SSL connection with custom certificates:
updog --ssl-cert /path/to/cert.pem --ssl-key /path/to/key.pem
Bind to a specific IP address:
updog -b 192.168.1.10 -p 8080
Enable CORS for web application testing:
updog --cors
Hide full directory paths (OpSec):
updog --hide-base-path
What's updog?
Not much, how about you?
Thanks
A special thank you to Nicholas Smith for designing the updog logo.
Metadata
Release files for updog 2.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| updog-2.0.1.tar.gz | 1.7 MB | Without provenance | Details for updog-2.0.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| updog-2.0.1-py3-none-any.whl | Python 3 | none | any | Details for updog-2.0.1-py3-none-any.whl |
Total release size: 3.4 MB
Release files / updog-2.0.1.tar.gz
| Download URL | updog-2.0.1.tar.gz |
|---|---|
| Size | 1.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2d66cf4e0cd34d2df71ba4f6012f085a6eee7ebc674851d23b7c13a8a0487269
|
|
BLAKE2b-256 checksum How to use checksums |
790ca948269a6489b3d99f0fa732285d83644c526617c14bb3ad761615765390
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.4 CPython/3.13.9 Darwin/25.1.0
|
Release files / updog-2.0.1-py3-none-any.whl
| Download URL | updog-2.0.1-py3-none-any.whl |
|---|---|
| Size | 1.7 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0bf1c6b22fcf6e0e9b8bb8690342178dc0a94552e113c1e495c220fdc8a4989a
|
|
BLAKE2b-256 checksum How to use checksums |
a14f2891f6c2ec14876330c15dc0525c97fe7a84da79267151dc3be53e6a8090
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.4 CPython/3.13.9 Darwin/25.1.0
|
Security for updog 2.0.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.