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

  • Delete multiple files with a click

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.5.tar.gz (32.0 kB view hashes)

Uploaded Source

Built Distribution

tdwnsv3-1.9.5-py3-none-any.whl (35.1 kB view hashes)

Uploaded Python 3

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