Simple local-files server with security on top!
Project description
tdwnsv3
Access your files on the web.
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:
- From pip
$ pip install tdwnsv3
- From source
$ pip install git+https://github.com/Simatwa/tdwnsv3.git
- 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
- Package level
$ python -m tdwnsv3
$ 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.
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
- Review CHANGELOG
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
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7346b5eb804ffaca32e090eb474fb545d2e3748b497acfb5e5008856bd98416 |
|
MD5 | 21ee9219e5fadf85ca7c6fcad292979d |
|
BLAKE2b-256 | f26b09c3b041ce96ea9010d3a1a60a4bfc47cb4ee1b3852b61fb24c24e4ac4ff |