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  -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] [--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)
--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.0.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: updog3-1.0.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.0.tar.gz
Algorithm Hash digest
SHA256 8993841bfe65422a94baa8e5e85a4e5ecc89be24a620fa52a43aff1e3729f260
MD5 a3d96fb1c2261be00014112c1a420f21
BLAKE2b-256 0b2147cfd2567246cdfbddd221da4c4e2f18797b0d81c6f380408789c1cf9f30

See more details on using hashes here.

File details

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

File metadata

  • Download URL: updog3-1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 555ebd0e10aefa51aee49c666bbb7898816ad5604ba7781fc6999596dbbe777f
MD5 0df3b81f21ebbabdd6ba931970497a3a
BLAKE2b-256 f17a653c3bdbe6e969c9bdcfcc4d423644a8d4c5ffed128efa0d0cd63f281e16

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