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.
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 😭
Metadata
Release files for updog3 1.4.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| updog3-1.4.4.tar.gz | 2.5 MB | Without provenance | Details for updog3-1.4.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| updog3-1.4.4-py3-none-any.whl | Python 3 | none | any | Details for updog3-1.4.4-py3-none-any.whl |
Total release size: 4.9 MB
Release files / updog3-1.4.4.tar.gz
| Download URL | updog3-1.4.4.tar.gz |
|---|---|
| Size | 2.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
314fd484ee80d7f2fc26f3c278e9925fc543a011bbb9eaab8e45b66820763283
|
|
BLAKE2b-256 checksum How to use checksums |
5b84e6024d5d79677e539f7446ad5335f48aa5ae498926894a5e5ad728eafddf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|
Release files / updog3-1.4.4-py3-none-any.whl
| Download URL | updog3-1.4.4-py3-none-any.whl |
|---|---|
| Size | 2.5 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f3d2330e886785b14b1ccc749bbd9052c9294982e8a815a67528f9c82b0940d7
|
|
BLAKE2b-256 checksum How to use checksums |
decc9aa72938a6dfa37bf5a143ff0e5510e9b5fd3863e501c53bcd267c9a7460
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.12.7
|
Security for updog3 1.4.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.