diff --git a/extremum_web/settings.py b/extremum_web/settings.py index 018dd5dda..0de4f113e 100755 --- a/extremum_web/settings.py +++ b/extremum_web/settings.py @@ -12,6 +12,7 @@ https://docs.djangoproject.com/en/5.0/ref/settings/ import os from pathlib import Path +import dj_database_url # Build paths inside the project like this: BASE_DIR / 'subdir'. BASE_DIR = Path(__file__).resolve().parent.parent @@ -32,8 +33,15 @@ ALLOWED_HOSTS = ['127.0.0.1'] DEBUG_PROPAGATE_EXCEPTIONS = True -# Application definition +SECURE_HSTS_SECONDS = 31536000 # One year +SECURE_HSTS_INCLUDE_SUBDOMAINS = True +SECURE_HSTS_PRELOAD = True +SECURE_SSL_REDIRECT = True +SESSION_COOKIE_SECURE = True +CSRF_COOKIE_SECURE = True + +# Application definition INSTALLED_APPS = [ "django.contrib.admin", "django.contrib.auth", @@ -89,6 +97,11 @@ DATABASES = { } } +if 'DATABASE_URL' in os.environ: + DATABASES['default'] = dj_database_url.config( + conn_max_age=500, + conn_health_checks=True, + ) # Password validation # https://docs.djangoproject.com/en/5.0/ref/settings/#auth-password-validators diff --git a/requirements.txt b/requirements.txt index 6464b498b..3ea681ec5 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,54 +1,193 @@ +anyio==4.4.0 +argon2-cffi==23.1.0 +argon2-cffi-bindings==21.2.0 +arrow==1.3.0 +asgiref==3.8.1 +asttokens==2.4.1 +async-lru==2.0.4 +attrs==23.2.0 +Babel==2.15.0 +backcall==0.2.0 +beautifulsoup4==4.12.3 black==24.4.2 +bleach==6.1.0 blinker==1.4 cached-property==1.5.1 -cloud-init==24.1.3 +certifi==2019.11.28 +cffi==1.16.0 +chardet==3.0.4 +charset-normalizer==3.3.2 +click==8.1.7 +cloud-init==24.3.1 codecov==2.1.13 collective.checkdocs==0.2 +comm==0.2.2 configobj==5.0.6 +contourpy==1.2.1 +coverage==7.5.1 +crayons==0.4.0 cryptography==2.8 +cycler==0.12.1 dbus-python==1.2.16 +debugpy==1.8.1 +decorator==5.1.1 +defusedxml==0.7.1 +distlib==0.3.8 distro==1.4.0 -django==5.0.6 +dj-database-url==2.3.0 +Django==5.0.6 docker==4.1.0 docker-compose==1.25.0 dockerpty==0.4.1 +docopt==0.6.2 +docutils==0.21.2 +et-xmlfile==1.1.0 +exceptiongroup==1.2.1 +executing==2.0.1 +fastjsonschema==2.19.1 +filelock==3.14.0 flake8==7.0.0 +fonttools==4.53.0 fqdn==1.5.1 +fs==2.4.16 +gease==0.0.11 +gunicorn==23.0.0 +h11==0.14.0 +httpcore==1.0.5 +httpx==0.27.0 +idna==2.8 +importlib-metadata==1.5.0 +ipykernel==6.29.4 +ipython==8.12.3 isoduration==20.11.0 isort==5.13.2 +jedi==0.19.1 +Jinja2==3.1.4 +jinja2-fsloader==0.3.0 +joblib==1.4.2 +json5==0.9.25 jsonpatch==1.22 jsonpointer==2.0 +jsonschema==4.22.0 +jsonschema-specifications==2023.12.1 +jupyter-events==0.10.0 +jupyter-lsp==2.2.5 +jupyter_client==8.6.1 +jupyter_core==5.7.2 +jupyter_server==2.14.1 +jupyter_server_terminals==0.5.3 jupyterlab==4.2.1 +jupyterlab_pygments==0.3.0 +jupyterlab_server==2.27.2 +kiwisolver==1.4.5 +llvmlite==0.43.0 +lml==0.1.0 +lxml==5.2.2 +MarkupSafe==2.1.5 matplotlib==3.9.0 +matplotlib-inline==0.1.7 +mccabe==0.7.0 +mistune==3.0.2 moban==0.8.2 +moban-jinja2-github==0.0.4 more-itertools==4.2.0 +mypy-extensions==1.0.0 +nbclient==0.10.0 +nbconvert==7.16.4 +nbformat==5.10.4 +nest-asyncio==1.6.0 netifaces==0.10.4 nose==1.3.7 +notebook_shim==0.2.4 +numba==0.60.0 +numpy==1.26.4 oauthlib==3.1.0 +openpyxl==3.1.2 +overrides==7.7.0 +packaging==24.0 pandas==2.2.2 +pandocfilters==1.5.1 +parso==0.8.4 +pathspec==0.12.1 +pexpect==4.6.0 +pickleshare==0.7.5 +pillow==10.3.0 pip-chill==1.0.3 pipenv==2023.12.1 pipreqs==0.5.0 +platformdirs==4.2.2 +prometheus_client==0.20.0 +prompt-toolkit==3.0.43 +psutil==5.9.8 +psycopg2-binary==2.9.10 +ptyprocess==0.7.0 +pure-eval==0.2.2 +pycairo==1.16.2 +pycodestyle==2.11.1 +pycparser==2.22 pyecharts-jupyter-installer==0.0.3 +pyexcel==0.7.0 +pyexcel-ezodf==0.3.4 pyexcel-handsontable==0.0.2 +pyexcel-io==0.6.6 pyexcel-ods3==0.6.1 pyexcel-pygal==0.0.2 pyexcel-webio==0.1.4 pyexcel-xls==0.7.0 pyexcel-xlsx==0.6.0 -pygobject==3.36.0 -pyjwt==1.7.1 -pyopenssl==19.0.0 +pyflakes==3.2.0 +pygal==3.0.4 +Pygments==2.18.0 +PyGObject==3.36.0 +PyJWT==1.7.1 +pyOpenSSL==19.0.0 +pyparsing==3.1.2 pyrsistent==0.15.5 pyserial==3.4 python-apt==2.0.1+ubuntu0.20.4.1 +python-dateutil==2.9.0.post0 python-dotenv==1.0.1 -sos==4.5.6 +python-json-logger==2.0.7 +pytz==2024.1 +PyYAML==5.3.1 +pyzmq==26.0.3 +referencing==0.35.1 +requests==2.32.3 +rfc3339-validator==0.1.4 +rfc3986-validator==0.1.1 +rpds-py==0.18.1 +scikit-learn==1.5.0 +scipy==1.13.1 +Send2Trash==1.8.3 +six==1.14.0 +sniffio==1.3.1 +sos==4.7.2 +soupsieve==2.5 +sqlparse==0.5.0 ssh-import-id==5.10 +stack-data==0.6.3 stumpy==1.13.0 +terminado==0.18.1 +texttable==1.6.2 +threadpoolctl==3.5.0 +tinycss2==1.3.0 +tomli==2.0.1 +tornado==6.4 +traitlets==5.14.3 +types-python-dateutil==2.9.0.20240316 +typing_extensions==4.11.0 +tzdata==2024.1 ufw==0.36 uri-template==1.3.0 +urllib3==1.25.8 +virtualenv==20.26.2 virtualenv-clone==0.5.7 +wcwidth==0.2.13 webcolors==24.6.0 +webencodings==0.5.1 +websocket-client==1.8.0 wildboar==1.2.0 -zipp==1.0.0 \ No newline at end of file +xlrd==2.0.1 +xlwt==1.3.0 +yarg==0.1.9 +zipp==1.0.0