Skip to content
forked from sc0tfree/updog

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. Updog3 can set ad hoc and custom SSL certificates, use http basic auth, and restrict uploads and downloads at will.

License

Notifications You must be signed in to change notification settings

felmoltor/updog3

 
 

Repository files navigation

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 pypi

The easiest way:

pip install updog3
updog3 --version && updog3 -h

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 😭

About

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. Updog3 can set ad hoc and custom SSL certificates, use http basic auth, and restrict uploads and downloads at will.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 53.3%
  • HTML 22.0%
  • SCSS 17.7%
  • Dockerfile 4.5%
  • JavaScript 2.5%