This is an old revision of the document!
# apt install python3-venv $ python3 -m venv ~/venv1 $ source ~/venv1/bin/activate (venv1) $ which python (venv1) $ which ansible (venv1) $ deactivate
(venv1) :~$ pip install Flask (venv1) :~$ mkdir -p pywebd/; cd $_ (venv1) :~/pywebd$ cat app.py
from flask import Flask, send_from_directory import os import configparser app = Flask(__name__) @app.route('/') def index(): return send_from_directory(pywebd_doc_root, 'index.html') @app.route('/<path:path>') def sendstuff(path): print(path) return send_from_directory(pywebd_doc_root, path) if __name__ == "__main__": config = configparser.ConfigParser() config.read('/etc/pywebd/pywebd.conf') # pywebd_port = os.environ.get('PYWEBD_PORT',config['default']['Listen']) # pywebd_doc_root = os.environ.get('PYWEBD_DOC_ROOT',config['default']['DocumentRoot']) if 'PYWEBD_PORT' in os.environ: pywebd_port = os.environ.get('PYWEBD_PORT') else: pywebd_port = config['default']['Listen'] if 'PYWEBD_DOC_ROOT' in os.environ: pywebd_doc_root = os.environ.get('PYWEBD_DOC_ROOT') else: pywebd_doc_root = config['default']['DocumentRoot'] app.run(host="0.0.0.0", port=pywebd_port, debug=True) # app.run(ssl_context=('/etc/pywebd/pywebd.crt', '/etc/pywebd/pywebd.key'), debug=True, host='0.0.0.0', port=pywebd_port)
# mkdir -p /etc/pywebd/ # cat /etc/pywebd/pywebd.conf
[default] DocumentRoot = /var/www/ Listen = 4080
# #cp /root/wild.crt /etc/pywebd/pywebd.crt # #cp /root/wild.key /etc/pywebd/pywebd.key
(venv1) :~/pywebd$ #export PYWEBD_PORT=4443 (venv1) :~/pywebd$ #export PYWEBD_DOC_ROOT=/var/www/html/ (venv1) :~/pywebd$ #PYWEBD_PORT=4443 PYWEBD_DOC_ROOT=/var/www/html/ python app.py (venv1) :~/pywebd$ python app.py (venv1) :~/pywebd$ pip freeze | tee requirements.txt
dir$ python3 -m http.server 80