Skip to content
sc0tfreePublic

About

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.

Topics

Resources

Stars

3.4k stars

Watchers

26 watching

Forks

Latest commit

 

History

26 Commits

Folders and files

Repository files navigation

Version 2.0.1 Python 3.11+ MIT License sc0tfree Twitter

updog

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.

About

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.

Topics

Resources

Stars

3.4k stars

Watchers

26 watching

Forks

Releases

Packages

Used by

Contributors

Languages