Home
Softono

Updog

Open source MIT Python
3.4K
Stars
333
Forks
13
Issues
27
Watchers
9 months
Last Commit

 About 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.

Platforms

Web Self-hosted

Languages

Python

Links

Need Help Installing Updog?

We provide expert installation service for this software. Our team will install, configure, and secure Updog on your server. plans start at just $30.

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.