Skip to main content

updog3 is a fork of Sc0tfree's Updog tool, which was a replacement for Python's SimpleHTTPServer. It allows uploading and downloading via HTTP/S, can set ad hoc and custom SSL certificates, use HTTP basic auth, and disable upload and download functionality when required

Project description

Version 1.0 Python 3.12 MIT License felmoltor Twitter sc0tfree Twitter

updog3 is a for of Sc0tfree's Updog tool, which was a replacement for Python's SimpleHTTPServer. It allows uploading and downloading via HTTP/S, can set ad hoc and custom SSL certificates, use HTTP basic auth, and disable upload and download functionality when required.

updog3 Logo

Installation from source with pipenv

You need Python3.12.

git clone https://github.com/felmoltor/updog3
cd updog3
pipenv install .
pipenv shell
which updog3 # to verify you are using the module installed with pipenv
updog --version

After this, you do not use python setup.py install as it has some errors that prevents copying the Flask templates and the server will not run. Use pipenv install . instead to install updog as a module.

Docker

Use docker:

# If you are not logged in:
docker login ghcr.io -u <youruser> 
# Pull latest
docker pull ghcr.io/felmoltor/updog3:latest
# If you are using Mac: 
# docker pull --platform linux/amd64 ghcr.io/felmoltor/updog3:latest
# Tag it as updog3:
docker tag ghcr.io/felmoltor/updog3:latest updog3
docker run updog3 -h

# Run from docker mapping port 443 and your domain's certificates
docker run -p 443:443 -v $(pwd)/transfer:/transfer -v /etc/letsencrypt/archive/yourdomain.com/:/certs/  updog3 -p 443 --ssl --cert /certs/cert1.pem /certs/privkey1.pem -d /transfer

Usage

updog3 [-d DIRECTORY] [-p PORT] [--password PASSWORD] [-i] [--ssl] [--cert certificate.pem key.pem] [--fullpath] [--upload [only, enabled, disabled]]

Argument Description
-d DIRECTORY, --directory DIRECTORY Root directory [Default=.]
-p PORT, --port PORT Port to serve [Default=9090]
--password PASSWORD Use a password to access the page. (No username)
-i, --interface IP address of the interface to listen
-D, --createdir Allow directory creation from the web interface
--ssl Enable transport encryption via SSL
--cert Provide your own certificate and key
--upload Select: only, enabled, disabled
--fullpath Display the full path of the folder uploading to
--version Show version
-h, --help Show help

Examples

Serve from your current directory:

updog3

Serve from another directory:

updog3 -d /transfer

Serve from port 1234:

updog3 -p 1234

Password protect the page:

updog3 --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:

updog3 --ssl

Use an SSL connection with custom certificates:

updog3 --ssl --cert /certs/certificate.pem /certs/key.pem

For a LetsEncrypt certificate, the files will be in /etc/letsencrypt/live/[domain]/cert.pem and /etc/letsencrypt/live/[domain]/privatekey.pem (careful, these are just links to ../../archive/ folder, so if you are copying those to another folder, ensure you copy the archive files.)

Modify upload/download functionality:

To allow only uploads:

updog3 --upload only

To allow only downloads: updog3 --upload disabled

To allow uploads and downloads: updog3 --upload enabled (This is the default mode)

Thanks

To Sc0tfree, the original writer of Updog (https://github.com/sc0tfree/updog).

A special thank you to Nicholas Smith for designing the original updog logo. The updog3 logo is a poor attempt at updating it, sorry, Nicholas, I am not a designer 😭

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

updog3-1.4.3.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

updog3-1.4.3-py3-none-any.whl (2.5 MB view details)

Uploaded Python 3

File details

Details for the file updog3-1.4.3.tar.gz.

File metadata

  • Download URL: updog3-1.4.3.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for updog3-1.4.3.tar.gz
Algorithm Hash digest
SHA256 f9353e7ae2a18570a15e433533416817ba6c84eddf58da62fda7f147caf3d70e
MD5 05ec1ee2c602de92a6916394cd71f5b1
BLAKE2b-256 32f2ef609f9fbdafeca8a69dc7baa1a7ff1d119c47a7ef4c67171c3570450b8f

See more details on using hashes here.

File details

Details for the file updog3-1.4.3-py3-none-any.whl.

File metadata

  • Download URL: updog3-1.4.3-py3-none-any.whl
  • Upload date:
  • Size: 2.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for updog3-1.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3cb925418091ed3b9c7ea8ec7e204127a17f9ee975922a5e4f4c6d1c84fead2c
MD5 34af0fa5d3b7f55cb00fa3e04bfd7f57
BLAKE2b-256 2242f2e83cde2b73c7a5b4e6249d00417bbeed9982f07880df3415ca10ad4060

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page