Updog is a command-line HTTP server that extends Python's SimpleHTTPServer with file upload and download capabilities, SSL/TLS support, and HTTP basic authentication.
The tool solves the problem of needing a quick, temporary file-sharing server without the overhead of a full web framework. It works by binding to a specified address and port, serving files from a designated directory while allowing clients to upload files through a web interface. Users can optionally secure the server with password protection, enable HTTPS using either ad-hoc or custom SSL certificates, and configure CORS headers for web application testing.
Updog suits developers and system administrators who need to quickly share files over a network or test file uploads without setting up infrastructure. It works well for local development, penetration testing scenarios where the hide-base-path option obscures directory structure, and temporary file transfers between machines. The tool is particularly useful for those already familiar with SimpleHTTPServer who want upload functionality and security features without learning a new framework.
The project maintains active development with regular updates and clear documentation of command-line options. The codebase is written in Python and targets recent Python versions, ensuring compatibility with modern environments. The tool is distributed through standard Python package managers, making installation straightforward for end users.