sc0tfree/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.

Python

3,424

26 commits

updated Nov 16, 2025

See the code

README

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]

ArgumentDescription
-d DIRECTORY, --directory DIRECTORYRoot directory [Default=.]
-b ADDRESS, --bind ADDRESSBind to specific address [Default=0.0.0.0]
-p PORT, --port PORTPort to serve [Default=9090]
--password PASSWORDUse a password to access the page. (No username)
--sslEnable SSL with ad-hoc certificate
--ssl-cert CERTPath to custom SSL certificate
--ssl-key KEYPath to custom SSL private key
--corsEnable CORS headers
--hide-base-pathHide full directory path (show relative paths)
--versionShow version
-h, --helpShow 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.

file-sharing
file-upload
http-server
https-server
simplehttpserver

sc0tfree/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.

Python

3,424

26 commits

updated Nov 16, 2025

See the code

README

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]

ArgumentDescription
-d DIRECTORY, --directory DIRECTORYRoot directory [Default=.]
-b ADDRESS, --bind ADDRESSBind to specific address [Default=0.0.0.0]
-p PORT, --port PORTPort to serve [Default=9090]
--password PASSWORDUse a password to access the page. (No username)
--sslEnable SSL with ad-hoc certificate
--ssl-cert CERTPath to custom SSL certificate
--ssl-key KEYPath to custom SSL private key
--corsEnable CORS headers
--hide-base-pathHide full directory path (show relative paths)
--versionShow version
-h, --helpShow 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.

file-sharing
file-upload
http-server
https-server
simplehttpserver

Project health

Overall

2.0/10

Maintained

0/10

Code review

0/10
OpenSSF Scorecard

PyPI

Latest release

2.0.1 · Nov 16, 2025

Releases this year

2

Significant stargazers

chessai

262 followers · starred Feb 2020

Nitish Tiwari

142 followers · starred Feb 2020

Kavin Valli

338 followers · starred Feb 2022

Tonimir Kisasondi

239 followers · starred Mar 2021