Skip to main content

Simple local-files server with security on top!

Project description

tdwnsv3

Github

pypi

Coverage

wakatime

Downloads

Visitors

Code-style

Access your files on the web.

Web interface sample

Independencies

  • Flask

  • cryptography

  • appdirs

Features

  • Simple commandline interface

  • Web interface with multiple themes

  • Serve as static files server - index.html

  • Highly immune against variety of attacks

  • Compatible with multiple devices and browsers

  • Fully customizable web interface - css

  • Upload and download files

Installation

  • Choose your suit from the following ways:
  1. From pip
$ pip install tdwnsv3
  1. From source
$ pip install git+https://github.com/Simatwa/tdwnsv3.git
  1. Cloning repo and install
git clone https://github.com/Simatwa/tdwnsv3.git

cd tdwnsv3

sudo bash install.sh

Usage

Either of the following ways will get you ready at the terminal environment

  1. Package level

$ python -m tdwnsv3

  1. $ tdwnsv3

By default, the server fires up with the following configurations:

Command Default
host False
port 8000
no-sort False
theme 3
upload False
encrypt False
session False

Note This is just a shallow display of the default configurations.

wsgi

Since Flask server runs at development environment, you may need to run the program on a server such as Nginx for efficiency.

from tdwnsv3.tdwnsv3 import app



if __name__ == "__main__":

    app.run()

The wsgi.py script can be interfaced with wsgi such as uwsgi to run behind a server .

  • For instance intergrating with uwsgi as stated in docs :



$ uwsgi --http=0.0.0.0:8080 -w wsgi:app



  • Run tdwnsv3 -h to view more configuration info as shown.



usage: tdwnsv3 [-h] [-v] [-d DIR] [-a ALLOW] [-r RESTRICT] [-w WHITELIST]

               [-b BLACKLIST] [-t SPLIT] [-s 1 to 10] [-l 1 to 5] [-o LOG]

               [-ho HOME] [-st STATIC] [-up RECEIVE] [-se SESSION] [-th [1-3]]

               [-cs CSS] [-upp UPLOAD_PATH] [-upe UPLOAD_EXTENSION]

               [-ups UPLOAD_SIZE] [-upl upload_limit] [--upload-multiple]

               [--disable-aggressive] [--display-hidden] [--host] [--no-sort]

               [--view] [--strict] [--preload] [--upload] [--save-css]

               [--no-cache] [--encrypt] [--debug] [--index]

               [port]



Simple local-files server with security on top!



positional arguments:

  port                  Port to be used for hosting files



options:

  -h, --help            show this help message and exit

  -v, --version         show program's version number and exit

  -d DIR, --dir DIR     Directory to be hosted

  -a ALLOW, --allow ALLOW

                        Host only certain entries

  -r RESTRICT, --restrict RESTRICT

                        Hide entries from being viewed

  -w WHITELIST, --whitelist WHITELIST

                        IP(s) to be excluded from restrictions - default :

                        None

  -b BLACKLIST, --brownlist BLACKLIST

                        IP(s) to be imposed the restrictions - default : all

  -t SPLIT, --split SPLIT

                        Separator for the entries allowed/restricted - default

                        [,]

  -s 1 to 10, --secure 1 to 10

                        Level of security on contents

  -l 1 to 5, --level 1 to 5

                        Logging level

  -o LOG, --log LOG     Filepath to log to

  -ho HOME, --home HOME

                        Home host subdomain path

  -st STATIC, --static STATIC

                        Static host subdomain path

  -up RECEIVE, --receive RECEIVE

                        Upload host subdomain path

  -se SESSION, --session SESSION

                        Maximum session time per user - (mins)

  -th [1-3], --theme [1-3]

                        Theme for displaying contents

  -cs CSS, --css CSS    Customize webpage with the CSS in path

  -upp UPLOAD_PATH, --upload-path UPLOAD_PATH

                        Path for saving uploaded files

  -upe UPLOAD_EXTENSION, --upload-extension UPLOAD_EXTENSION

                        Extensions of files to be uploaded

  -ups UPLOAD_SIZE, --upload-size UPLOAD_SIZE

                        Maximum file size to be uploaded - [MB]

  -upl upload_limit, --upload-limit-person upload_limit

                        Maximum files to be uploaded per IP

  --upload-multiple     Allow users to upload more than one file at a time.

  --disable-aggressive  Not to - Filter all entries with the restricted

                        keywords +

  --display-hidden      Show hidden files and directories

  --host                Host the files on the LAN

  --no-sort             Disable prettifying the display of contents

  --view                Files can be seen but can't be downloaded

  --strict              Only allow whitelisted & brownlisted IPs to access

                        server!

  --preload             Load videos before clicked

  --upload              Allow users to upload files

  --save-css            Saves the css data in path for future use

  --no-cache            Use currently passed parameters not previously saved;

                        content-caching disabled

  --encrypt             Encrypt URIs on the webpage

  --debug               Debug the web application in UI mode

  --index               Serve from index.html file



Acknowledgements

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

tdwnsv3-1.9.1.tar.gz (30.9 kB view details)

Uploaded Source

File details

Details for the file tdwnsv3-1.9.1.tar.gz.

File metadata

  • Download URL: tdwnsv3-1.9.1.tar.gz
  • Upload date:
  • Size: 30.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for tdwnsv3-1.9.1.tar.gz
Algorithm Hash digest
SHA256 b7346b5eb804ffaca32e090eb474fb545d2e3748b497acfb5e5008856bd98416
MD5 21ee9219e5fadf85ca7c6fcad292979d
BLAKE2b-256 f26b09c3b041ce96ea9010d3a1a60a4bfc47cb4ee1b3852b61fb24c24e4ac4ff

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