diff --git a/aether_flask_gunicorn.Dockerfile b/aether_flask_gunicorn.Dockerfile index a4e7797..e5633fc 100644 --- a/aether_flask_gunicorn.Dockerfile +++ b/aether_flask_gunicorn.Dockerfile @@ -1,4 +1,4 @@ -FROM python:3 +FROM python:3.11 LABEL maintainer="Scott Idem " diff --git a/conf/aether_app_config.py b/conf/aether_app_config.py index 940fcb7..c7cf33e 100644 --- a/conf/aether_app_config.py +++ b/conf/aether_app_config.py @@ -81,7 +81,7 @@ AETHER_CFG['app']['ux_mode'] = None # In this case it is the same as mode. None, AETHER_CFG['app']['theme'] = None # For future use or at least for 'light', 'dark', 'contrast' themes? AETHER_CFG['app']['path_hosted_files_root']: str = None AETHER_CFG['app']['path_hosted_tmp_root']: str = None -AETHER_CFG['app']['path_hosted_qr_images']: str = None # Will contain only QR code image files +# AETHER_CFG['app']['path_hosted_qr_images']: str = None # Will contain only QR code image files; Use path_hosted_tmp_root instead ## Aether API for Flask app configuration (pull from "cfg_flask" table) AETHER_CFG['api'] = {} diff --git a/conf/aether_fastapi_requirements_current.txt b/conf/aether_fastapi_requirements_current.txt new file mode 100644 index 0000000..4968fcb --- /dev/null +++ b/conf/aether_fastapi_requirements_current.txt @@ -0,0 +1,70 @@ +# Updated manually 2023-09-12 with a lot of trial and error. +# A few are commented out even though they are actually used and required. Other packages already pull them in. +# SQLAlchemy needs to be upgraded to 2.x. There are issues with async IO or something related to that. +# https://docs.sqlalchemy.org/en/14/changelog/migration_20.html + +# aioredis # BAD! Not maintained! +aiofiles +anyio +argon2-cffi +argon2-cffi-bindings +# asgiref +async-timeout +baize # added 2023-08-17 +# certifi +# cffi +charset-normalizer +click +Deprecated +dnspython +email-validator +et-xmlfile +fastapi>=0.88.0 +greenlet>=2.0.2 +gunicorn>=20.1.0 +h11 +html2text>=2020.1.16 +httpcore +httptools +httpx +idna +itsdangerous +# Jinja2>=3.1.2 +MarkupSafe +mysqlclient +numpy>=1.25.2 +openpyxl +orjson +# packaging +pandas>=2.1.0 +passlib +pdf2image>=1.16.3 +Pillow>=10.0.0 +pycparser +pydantic>=1.10.12 +PyJWT>=2.8.0 +pyparsing +python-dateutil +python-dotenv +python-multipart +pytz +PyYAML>=6.0.1 +qrcode>=7.4.2 +redis[hiredis] # redis==5.0.0 hiredis==2.2.3 +requests +rfc3986 +six +sniffio +SQLAlchemy==1.4.49 # 1.4.47 is the newest (2.0.20) I am working with +starlette>=0.22.0 +stripe>=6.4.0 +typing_extensions +ujson +urllib3 +uvicorn +uvloop +watchfiles +watchgod +websockets>=11.0.3 +wrapt +xlrd diff --git a/conf/aether_flask_requirements.txt b/conf/aether_flask_requirements.txt index 0185bdf..f793ceb 100644 --- a/conf/aether_flask_requirements.txt +++ b/conf/aether_flask_requirements.txt @@ -4,7 +4,8 @@ argon2-cffi>=23.1.0 # Must keep click>=8.1.7 # Must keep??? Deprecated>=1.2.14 -Flask==2.0.3 # Must keep +# Flask 2.0.3 works; 2.1.3 works except for changes related to send_file and send_directory; 2.2.5 does not yet work +Flask==2.1.3 # Must keep; 2.2.5 seems ok as of 2023-10-19 but needs more testing Flask-Caching>=2.0.2 Flask-Cors>=4.0.0 Flask-MySQLdb>=1.0.1 @@ -36,5 +37,5 @@ types-requests>=2.31.0.2 types-urllib3>=1.26.25.14 typing_extensions>=4.7.1 # urllib3>=1.26.16 -Werkzeug>=2.3.7 +Werkzeug==2.3.7 # hold off on upgrading to 3.x versions; Werkzeug 2.3.7 works with Flask 2.1.3; 2.3.8 should be out late 2023 xmltodict>=0.13.0 # Must keep diff --git a/conf/aether_flask_requirements_current.txt b/conf/aether_flask_requirements_current.txt new file mode 100644 index 0000000..0185bdf --- /dev/null +++ b/conf/aether_flask_requirements_current.txt @@ -0,0 +1,40 @@ +# Updated manually 2023-09-12 with a lot of trial and error. +# A few are commented out even though they are actually used and required. Other packages already pull them in. + +argon2-cffi>=23.1.0 # Must keep +click>=8.1.7 # Must keep??? +Deprecated>=1.2.14 +Flask==2.0.3 # Must keep +Flask-Caching>=2.0.2 +Flask-Cors>=4.0.0 +Flask-MySQLdb>=1.0.1 +Flask-SocketIO>=5.3.6 +Flask-SQLAlchemy>=2.5.1 +gunicorn>=21.2.0 +html2text>=2020.1.16 +# itsdangerous>=2.1.2 +Jinja2>=3.1.2 +# MarkupSafe>=2.1.3 +# mysqlclient>=2.2.0 +numpy>=1.25.2 +pandas>=2.1.0 +passlib>=1.7.4 +Pillow>=10.0.0 +pydantic>=2.3.0 +python-dateutil>=2.8.2 +python-engineio>=4.3.0 +python-socketio>=5.5.0 +pytz>=2023.3.post1 +qrcode>=7.4.2 +redis>=5.0.0 +requests==2.28.1 # version 2.31.0 does not work? +# six>=1.16.0 +SQLAlchemy>=2.0.20 # Must keep +stripe==5.0.0 # version 6.4.0 exists 2023-09-12 +types-pytz>=2023.3.0.1 +types-requests>=2.31.0.2 +types-urllib3>=1.26.25.14 +typing_extensions>=4.7.1 +# urllib3>=1.26.16 +Werkzeug>=2.3.7 +xmltodict>=0.13.0 # Must keep diff --git a/conf/nginx/site-enabled_aether_fastapi_gunicorn.conf b/conf/nginx/site-enabled_aether_fastapi_gunicorn.conf index 1ede886..603873f 100644 --- a/conf/nginx/site-enabled_aether_fastapi_gunicorn.conf +++ b/conf/nginx/site-enabled_aether_fastapi_gunicorn.conf @@ -2,7 +2,13 @@ server { listen 80; listen [::]:80; - server_name ${DOCKER_AE_API_SERVER_NAME} fastapi.localhost api.localhost; + server_name + ${DOCKER_AE_API_SERVER_NAME} + fastapi.localhost + api.localhost + # sr-api.oneskyit.com + ; + # server_name # fastapi_gunicorn.localhost # dev-api.localhost @@ -67,7 +73,13 @@ server { listen 443 ssl; listen [::]:443 ssl; - server_name ${DOCKER_AE_API_SERVER_NAME} fastapi.localhost api.localhost; + server_name + ${DOCKER_AE_API_SERVER_NAME} + fastapi.localhost + api.localhost + # sr-api.oneskyit.com + ; + # server_name # fastapi_gunicorn.localhost # dev-api.localhost diff --git a/conf/nginx/site-enabled_aether_flask_gunicorn.conf b/conf/nginx/site-enabled_aether_flask_gunicorn.conf index a09a05e..767046d 100644 --- a/conf/nginx/site-enabled_aether_flask_gunicorn.conf +++ b/conf/nginx/site-enabled_aether_flask_gunicorn.conf @@ -6,6 +6,7 @@ server { # ${NGINX_SERVER_NAMES} # ; server_name + ${DOCKER_AE_APP_SERVER_NAME} flask_gunicorn.localhost demo.localhost dev.localhost dev-app.oneskyit.com @@ -15,7 +16,6 @@ server { dev-aacc.oneskyit.com *.dev-aacc.oneskyit.com dev-aapor.oneskyit.com *.dev-aapor.oneskyit.com dev-businessgroup.oneskyit.com *.dev-businessgroup.oneskyit.com - dev-cmsc.oneskyit.com *.dev-cmsc.oneskyit.com dev-idaa.oneskyit.com *.dev-idaa.oneskyit.com dev-ishlt.oneskyit.com *.dev-ishlt.oneskyit.com @@ -23,6 +23,17 @@ server { dev-ncsd.oneskyit.com *.dev-ncsd.oneskyit.com dev-npa.oneskyit.com *.dev-npa.oneskyit.com dev-rli.oneskyit.com *.dev-rli.oneskyit.com + + sr-app.oneskyit.com + sr-connect.oneskyit.com *.sr-connect.oneskyit.com + sr-demo.oneskyit.com *.sr-demo.oneskyit.com + + sr-aacc.oneskyit.com *.sr-aacc.oneskyit.com + sr-aapor.oneskyit.com *.sr-aapor.oneskyit.com + sr-businessgroup.oneskyit.com *.sr-businessgroup.oneskyit.com + sr-cmsc.oneskyit.com *.sr-cmsc.oneskyit.com + sr-lci.oneskyit.com *.sr-lci.oneskyit.com + sr-ncsd.oneskyit.com *.sr-ncsd.oneskyit.com test-app.oneskyit.com test-idaa.oneskyit.com *.test-idaa.oneskyit.com @@ -64,6 +75,7 @@ server { # ${NGINX_SERVER_NAMES} # ; server_name + ${DOCKER_AE_APP_SERVER_NAME} flask_gunicorn.localhost demo.localhost dev.localhost dev-app.oneskyit.com @@ -73,7 +85,6 @@ server { dev-aacc.oneskyit.com *.dev-aacc.oneskyit.com dev-aapor.oneskyit.com *.dev-aapor.oneskyit.com dev-businessgroup.oneskyit.com *.dev-businessgroup.oneskyit.com - dev-cmsc.oneskyit.com *.dev-cmsc.oneskyit.com dev-idaa.oneskyit.com *.dev-idaa.oneskyit.com dev-ishlt.oneskyit.com *.dev-ishlt.oneskyit.com @@ -81,6 +92,17 @@ server { dev-ncsd.oneskyit.com *.dev-ncsd.oneskyit.com dev-npa.oneskyit.com *.dev-npa.oneskyit.com dev-rli.oneskyit.com *.dev-rli.oneskyit.com + + sr-app.oneskyit.com + sr-connect.oneskyit.com *.sr-connect.oneskyit.com + sr-demo.oneskyit.com *.sr-demo.oneskyit.com + + sr-aacc.oneskyit.com *.sr-aacc.oneskyit.com + sr-aapor.oneskyit.com *.sr-aapor.oneskyit.com + sr-businessgroup.oneskyit.com *.sr-businessgroup.oneskyit.com + sr-cmsc.oneskyit.com *.sr-cmsc.oneskyit.com + sr-lci.oneskyit.com *.sr-lci.oneskyit.com + sr-ncsd.oneskyit.com *.sr-ncsd.oneskyit.com test-app.oneskyit.com test-idaa.oneskyit.com *.test-idaa.oneskyit.com