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.
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 | |
|---|---|---|---|
| updog-2.0.1.tar.gz | 1.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| updog-2.0.1-py3-none-any.whl | Python 3 | none | any | Details |
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
|