From 5682ead8a000b711884d2672ae17590f686b6a5f Mon Sep 17 00:00:00 2001 From: qwerrrqw Date: Wed, 6 Nov 2024 17:48:55 +0900 Subject: [PATCH] Add Redis TLS support for Heroku base.py(286~287) - CELERY_BROKER_USE_SSL - CELERY_REDIS_BACKEND_USE_SSL production.py(51~54) - REDIS_SSL - Set to default=False, no impact on existing environments You only need to set REDIS_SSL=True in Heroku environment Add only new options without modifying existing settings --- uv.lock | 6 +++--- {{cookiecutter.project_slug}}/config/settings/base.py | 3 +++ {{cookiecutter.project_slug}}/config/settings/production.py | 5 +++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/uv.lock b/uv.lock index c6944c41d..0d3cfc93f 100644 --- a/uv.lock +++ b/uv.lock @@ -181,7 +181,7 @@ wheels = [ [[package]] name = "cookiecutter-django" -version = "2024.10.24" +version = "2024.11.5" source = { virtual = "." } dependencies = [ { name = "binaryornot" }, @@ -204,7 +204,7 @@ dependencies = [ { name = "tox-uv" }, ] -[package.dependency-groups] +[package.dev-dependencies] docs = [ { name = "myst-parser" }, { name = "sphinx" }, @@ -234,7 +234,7 @@ requires-dist = [ { name = "tox-uv", specifier = ">=1.11.2" }, ] -[package.metadata.dependency-groups] +[package.metadata.requires-dev] docs = [ { name = "myst-parser", specifier = ">=4" }, { name = "sphinx", specifier = ">=8.0.2" }, diff --git a/{{cookiecutter.project_slug}}/config/settings/base.py b/{{cookiecutter.project_slug}}/config/settings/base.py index 97a4c42b9..454c288e4 100644 --- a/{{cookiecutter.project_slug}}/config/settings/base.py +++ b/{{cookiecutter.project_slug}}/config/settings/base.py @@ -283,6 +283,9 @@ LOGGING = { } REDIS_URL = env("REDIS_URL", default="redis://{% if cookiecutter.use_docker == 'y' %}redis{%else%}localhost{% endif %}:6379/0") +CELERY_BROKER_USE_SSL = env.bool("CELERY_BROKER_USE_SSL", default=False) +CELERY_REDIS_BACKEND_USE_SSL = env.bool("CELERY_REDIS_BACKEND_USE_SSL", default=False) + {% if cookiecutter.use_celery == 'y' -%} # Celery diff --git a/{{cookiecutter.project_slug}}/config/settings/production.py b/{{cookiecutter.project_slug}}/config/settings/production.py index 8ef7b57c8..ae6505287 100644 --- a/{{cookiecutter.project_slug}}/config/settings/production.py +++ b/{{cookiecutter.project_slug}}/config/settings/production.py @@ -48,6 +48,11 @@ CACHES = { }, } +REDIS_SSL = env.bool("REDIS_SSL", default=False) +if REDIS_SSL: + CACHES["default"]["OPTIONS"]["CONNECTION_POOL_CLASS"] = "redis.connection.SSLConnection" + CACHES["default"]["OPTIONS"]["SSL_CERT_REQS"] = None + # SECURITY # ------------------------------------------------------------------------------ # https://docs.djangoproject.com/en/dev/ref/settings/#secure-proxy-ssl-header