Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for secure Redis (TLS support) #5526

Merged
merged 55 commits into from
Nov 21, 2024
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
5682ead
Add Redis TLS support for Heroku
qwerrrqw Nov 6, 2024
165075d
Merge branch 'master' into fix/redis-TLS-support
qwerrrqw Nov 12, 2024
8ec2c90
Update Heroku deployment docs with Redis TLS configuration
qwerrrqw Nov 14, 2024
7acd5a4
Merge branch 'fix/redis-TLS-support' of https://github.com/qwerrrqw/c…
qwerrrqw Nov 14, 2024
3d889e6
Update Heroku deployment docs: reorganize Redis TLS configuration
qwerrrqw Nov 14, 2024
e65ce78
Simplify Redis TLS configuration with single environment variable
qwerrrqw Nov 14, 2024
1f785bd
tests2
qwerrrqw Nov 15, 2024
f0da061
Error Correction
qwerrrqw Nov 15, 2024
ad008e9
error test
qwerrrqw Nov 15, 2024
c8fb4a1
tests
qwerrrqw Nov 15, 2024
78fe32d
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Nov 15, 2024
94afb9d
modify ruff 0.7.3 rule
qwerrrqw Nov 15, 2024
757fcc4
Merge branch 'master' of https://github.com/cookiecutter/cookiecutter…
qwerrrqw Nov 15, 2024
004e8bc
Merge branch 'master' into fix/redis-TLS-support
qwerrrqw Nov 15, 2024
cddfa6c
import ssl
qwerrrqw Nov 15, 2024
2a650c7
Merge pull request #1 from qwerrrqw/ruff/redis-TLS-support
qwerrrqw Nov 15, 2024
50e81a0
test
qwerrrqw Nov 15, 2024
2fd6857
Merge pull request #2 from qwerrrqw/ruff/redis-TLS-support
qwerrrqw Nov 15, 2024
d35d223
test
qwerrrqw Nov 15, 2024
ac46455
Merge pull request #3 from qwerrrqw/ruff/redis-TLS-support
qwerrrqw Nov 15, 2024
1677f1a
test
qwerrrqw Nov 15, 2024
5bd94d5
Merge pull request #4 from qwerrrqw/ruff/redis-TLS-support
qwerrrqw Nov 15, 2024
c937297
test
qwerrrqw Nov 15, 2024
34c8a4d
Merge pull request #5 from qwerrrqw/ruff/redis-TLS-support
qwerrrqw Nov 15, 2024
f50f1ea
test
qwerrrqw Nov 15, 2024
a2f1012
Merge pull request #6 from qwerrrqw/ruff/redis-TLS-support
qwerrrqw Nov 15, 2024
a3e62f6
test
qwerrrqw Nov 15, 2024
2b02cd2
Merge pull request #7 from qwerrrqw/ruff/redis-TLS-support
qwerrrqw Nov 15, 2024
a839300
test
qwerrrqw Nov 15, 2024
599943d
Merge pull request #8 from qwerrrqw/ruff/redis-TLS-support
qwerrrqw Nov 15, 2024
e6e1612
test
qwerrrqw Nov 15, 2024
fb2b682
Merge pull request #9 from qwerrrqw/ruff/redis-TLS-support
qwerrrqw Nov 15, 2024
345ed77
test
qwerrrqw Nov 15, 2024
afaca1d
Merge pull request #10 from qwerrrqw/ruff/redis-TLS-support
qwerrrqw Nov 15, 2024
ba1639b
Merge branch 'master' into fix/redis-TLS-support
qwerrrqw Nov 19, 2024
92a0fdc
fix: Redis SSL configuration
qwerrrqw Nov 21, 2024
3880417
Merge pull request #11 from qwerrrqw/ruff/redis-TLS-support
qwerrrqw Nov 21, 2024
9e24300
Change import ssl settings to conditional
qwerrrqw Nov 21, 2024
8cf6e72
Merge pull request #12 from qwerrrqw/ruff/redis-TLS-support
qwerrrqw Nov 21, 2024
ef5fc4e
Merge branch 'master' into fix/redis-TLS-support
qwerrrqw Nov 21, 2024
5d35f50
Modifying to ruff rules
qwerrrqw Nov 21, 2024
7d0c504
Merge pull request #13 from qwerrrqw/ruff/redis-TLS-support
qwerrrqw Nov 21, 2024
a5ed0d9
ruff
qwerrrqw Nov 21, 2024
648a346
Merge pull request #14 from qwerrrqw/ruff/redis-TLS-support
qwerrrqw Nov 21, 2024
819ae7b
ruff
qwerrrqw Nov 21, 2024
f4dc404
Merge pull request #15 from qwerrrqw/ruff/redis-TLS-support
qwerrrqw Nov 21, 2024
a893259
ruff
qwerrrqw Nov 21, 2024
8ba8f57
Merge pull request #16 from qwerrrqw/ruff/redis-TLS-support
qwerrrqw Nov 21, 2024
bb8090d
ruff/E402
qwerrrqw Nov 21, 2024
283be39
Merge pull request #17 from qwerrrqw/ruff/redis-TLS-support
qwerrrqw Nov 21, 2024
77ed234
Fix import style
browniebroke Nov 21, 2024
afae18e
Remove Ruff rule ignore
browniebroke Nov 21, 2024
c667d42
Remove extra line
browniebroke Nov 21, 2024
5d396be
Merge branch 'master' into fix/redis-TLS-support
browniebroke Nov 21, 2024
0281d71
Run uv lock
browniebroke Nov 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions docs/3-deployment/deployment-on-heroku.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,14 @@ Run these commands to deploy the project to Heroku:

# Note: this is not a free plan
heroku addons:create heroku-postgresql:essential-0

heroku addons:create heroku-redis:mini
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's already present at line 30


# Enable Redis TLS support (required for new Heroku Redis instances)
heroku config:set REDIS_SSL=True
heroku config:set CELERY_BROKER_USE_SSL=True
heroku config:set CELERY_REDIS_BACKEND_USE_SSL=True
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's put it after the existing line, please

browniebroke marked this conversation as resolved.
Show resolved Hide resolved

# On Windows use double quotes for the time zone, e.g.
# heroku pg:backups schedule --at "02:00 America/Los_Angeles" DATABASE_URL
heroku pg:backups schedule --at '02:00 America/Los_Angeles' DATABASE_URL
Expand Down Expand Up @@ -58,6 +66,11 @@ Run these commands to deploy the project to Heroku:
Notes
-----

Redis Configuration
+++++++++++++++++++

Heroku Redis now requires TLS connections by default. The script above includes the necessary TLS configuration. These settings are optional and default to False, so they won't affect existing deployments unless explicitly enabled.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need for this. While it seems like an important information right now, in month+ time, it will be irrelevant, so I'd rather not have this part in our docs


Email Service
+++++++++++++

Expand Down
6 changes: 3 additions & 3 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions {{cookiecutter.project_slug}}/config/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,9 @@
}

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)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can simplify things?

Suggested change
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)
CELERY_BROKER_USE_SSL = env.bool("REDIS_SSL", default=False)
CELERY_REDIS_BACKEND_USE_SSL = env.bool("REDIS_SSL", default=False)



{% if cookiecutter.use_celery == 'y' -%}
# Celery
Expand Down
5 changes: 5 additions & 0 deletions {{cookiecutter.project_slug}}/config/settings/production.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,11 @@
},
}

REDIS_SSL = env.bool("REDIS_SSL", default=False)
browniebroke marked this conversation as resolved.
Show resolved Hide resolved
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
Expand Down