Usages

Commands line

WebScripts

Using the python module:

Linux

python3 -m WebScripts

Windows

python -m WebScripts

Arguments

Help message

WebScripts --help
WebScripts -h

Change interface and port

WebScripts --interface "192.168.1.2" --port 80
WebScripts -i "192.168.1.2" -p 80

Add configuration from INI files

WebScripts --config-cfg "config1.ini" "config2.ini" --config-cfg "config3.ini"
WebScripts -c "config1.ini" "config2.ini" -c "config3.ini"

Add configuration from JSON files

WebScripts --config-json "config1.json" "config2.json" --config-json "config3.json"
WebScripts -j "config1.json" "config2.json" -j "config3.json"

Script paths

WebScripts --scripts-path "./scripts/1/" "./scripts/2/" --scripts-path "./scripts/3/"
WebScripts -S "./scripts/1/" "./scripts/2/" -S "./scripts/3/"

Script configuration paths

WebScripts --scripts-config "./config/1/*.json" "./config/2/*.ini" --scripts-config "./config/3/*.json"
WebScripts -S "./config/1/*.json" "./config/2/*.ini" -S "./config/3/*.json"

Modules

WebScripts --modules "module1" "module2" --modules "module3"
WebScripts -m "module1" "module2" -m "module3"

Module paths

WebScripts --modules-path "./modules/1/" "./modules/2/" --modules-path "./modules/3/"
WebScripts -I "./modules/1/" "./modules/2/" -I "./modules/3/"

Documentation paths

WebScripts --documentations-path "./doc/1/*.html" "./doc/2/*.txt" --documentations-path "./doc/3/*.html"
WebScripts -D "./doc/1/*.html" "./doc/2/*.txt" -D "./doc/3/*.html"

Javascript paths

WebScripts --js-path "./js/1/*.js" "./js/2/*.js" --js-path "./js/3/*.js"
WebScripts -J "./js/1/*.js" "./js/2/*.js" -J "./js/3/*.js"

Static paths

WebScripts --statics-path "./images/1/*.jpg" "./templates/html/2/*.html" --statics-path "./css/3/*.css"
WebScripts -T "./images/1/*.png" "./templates/html/2/*.html" -T "./pdf/3/*.pdf"

AUTH

Desactive authentication script

WebScripts --active-auth
WebScripts -a

Auth script

WebScripts --auth-script "auth.py"

Accept unauthenticated user

WebScripts --accept-unauthenticated-user --accept-unknow-user

Auth failures to blacklist

WebScripts --auth-failures-to-blacklist 3
WebScripts -b 3

Blacklist time

WebScripts --blacklist-time 30
WebScripts -B 30

Paths without authentication

WebScripts --exclude-auth-paths "/auth/" "/help/" --exclude-auth-paths "/contacts/"
WebScripts --e-auth-paths "/auth/" "/help/" --e-auth-paths "/contacts/"

Pages without authentication

WebScripts --exclude-auth-pages "/auth/page.py" "/help/page.html" --exclude-auth-pages "/contacts/page.html"
WebScripts --e-auth-pages "/auth/page.py" "/help/page.html" --e-auth-pages "/contacts/page.html"

DEV

Mode debug

  • To get python error message and traceback on page 500.
  • To get the existing URLs on page 404.
  • To export the full (since version 3.0.0) server configuration to a JSON file named export_Configuration.json.
  • Active unsecure module to see and change configurations
WebScripts --debug
WebScripts -d

Mode not secure

  • Do not use HTTP security headers, useful for debugging web scripts (javascript)
  • Active the Content-Security-Policy-Report-Only header
  • Active the debug module for Content-Security-Policy (URL: "/csp/debug/")
  • Don't raise WebScripts.Errors.WebScriptsSecurityError: Logs configuration file/directory permissions are insecure. Remote code execution can be exploited.. This error is raised when the WebScripts Server is not hardened (file permissions on the log configuration file), be careful it's a security problem (it can be used to bypass hardening in development environment only).
WebScripts --security
WebScripts -s

LOGS

Level

  • Configure the root logger (other loggers are not impacted)
  • Level must be in 0, DEBUG, INFO, WARNING, ERROR, CRITICAL
WebScripts --log-level DEBUG
WebScripts -l DEBUG

Filename

  • Configure the root logger (other loggers are not impacted)
WebScripts --log-filename "logs.log"
WebScripts -f "logs.log"

Encoding

  • Configure the root logger (other loggers are not impacted)
WebScripts --log-encoding "utf-8"

Format

  • Configure the root logger (other loggers are not impacted)
WebScripts --log-format "%(asctime)s %(levelname)s %(message)s (%(funcName)s -> %(filename)s:%(lineno)d)"

Date format

  • Configure the root logger (other loggers are not impacted)
WebScripts --log-date-format "%d/%m/%Y %H:%M:%S"

SMTP

Server

  • Configure the SMTP server name to send email notifications
WebScripts --smtp-server "my.smtp.server"
WebScripts --s-server "my.smtp.server"

StartTLS

  • Configure the secure connection with StartTLS
WebScripts --smtp-starttls
WebScripts --s-tls

Password

  • Configure the SMTP login (username is the notification_address configuration), if password is None the WebScripts Server send the email notifications without authentication.
WebScripts --smtp-password "password"
WebScripts --s-password "password"

Port

  • Configure the SMTP server port
WebScripts --smtp-port 25
WebScripts --s-port 25

SSL

  • Configure the secure connection with SSL
WebScripts --smtp-ssl
WebScripts --s-ssl

Receivers/Administrators email addresses

  • Configure the receivers email addresses (should be the administrators addresses)
WebScripts --admin-adresses "admin1@my.smtp.server" "admin2@my.smtp.server" --admin-adresses "admin3@my.smtp.server"
WebScripts --a-adr "admin1@my.smtp.server" "admin2@my.smtp.server" --a-adr "admin3@my.smtp.server"

Sender

  • Configure the sender email address
WebScripts --notification-address "notification@my.smtp.server"
WebScripts --n-adr "notification@my.smtp.server"

License

Licensed under the GPL, version 3.