Create production environment for GUI with Nginx and Gunicorn
In the current implementation of GUI there isn't proper application server and web server. It is important to handle http requests through proper web and application server.
Basically, Nginx
will be the first gate that handles client side request. Http requests will be forwarded (through Nginx) to Gunicorn where Flask application is managed.
-
Integrate Python WSGI server Gunicorn -
Configure/create docker container/image for Nginx ( it will work as the same way MQTT/mosquito work in docker container) -
Allow users to define custom SSL certificate for Nginx.
#315 should be completed after this setup is implemented.
From previous issue:
secure connections HTTPS + server side SSL certificate
- give the option to either autogenerate an SSL certificate or load a real, signed certificate
-
find a tool to generate automatically keys and certificate. (Default: uses self-signed certificates) -
find process for keys generation (certificate should be in clinician web browser)UPDATE: This is out of the scope and should be handled optionally by the hospital IT. -
(optional) store keys and certificate into *.pem
files -
decide a place where to store CA/root certificate in server (and which to choose) -> (under /certs directory) -
enable HTTPS connections (detail it into logs) -
add option to cli or config file to connect with HTTPS (dev mode) or without HTTPS (vpn mode) Options are added as --cert-file
and--key-file
forfedbiomed_run gui
-
(optional) add option to reject / revocate untrusted certificate(s)
Edited by CANSIZ Sergen