A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://cookiecutter-django.readthedocs.io/en/latest/deployment-on-heroku.html below:

Website Navigation


Deployment on Heroku — Cookiecutter Django 2025.33.6 documentation

Deployment on Heroku Script

Run these commands to deploy the project to Heroku:

heroku create --buildpack heroku/python

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

# 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
heroku pg:promote DATABASE_URL

heroku addons:create heroku-redis:mini

# Assuming you chose Mailgun as mail service (see below for others)
heroku addons:create mailgun:starter

heroku config:set DJANGO_DEBUG=False
heroku config:set DJANGO_SETTINGS_MODULE=config.settings.production
heroku config:set DJANGO_SECRET_KEY="$(openssl rand -base64 64)"

# Generating a 32 character-long random string without any of the visually similar characters "IOl01":
heroku config:set DJANGO_ADMIN_URL="$(openssl rand -base64 4096 | tr -dc 'A-HJ-NP-Za-km-z2-9' | head -c 32)/"

# Set this to your Heroku app url, e.g. 'bionic-beaver-28392.herokuapp.com'
heroku config:set DJANGO_ALLOWED_HOSTS=

# Assign with AWS_ACCESS_KEY_ID
heroku config:set DJANGO_AWS_ACCESS_KEY_ID=

# Assign with AWS_SECRET_ACCESS_KEY
heroku config:set DJANGO_AWS_SECRET_ACCESS_KEY=

# Assign with AWS_STORAGE_BUCKET_NAME
heroku config:set DJANGO_AWS_STORAGE_BUCKET_NAME=

git push heroku main

heroku run python manage.py createsuperuser

heroku run python manage.py check --deploy

heroku open
Notes Email Service

The script above assumes that you’ve chose Mailgun as email service. If you want to use another one, check the documentation for django-anymail to know which environment variables to set. Heroku provides other add-ons for emails (e.g. Sendgrid) which can be configured with a similar one line command.

Warning

If your email server used to send email isn’t configured properly (Mailgun by default), attempting to send an email will cause an Internal Server Error.

By default, django-allauth is setup to have emails verifications mandatory, which means it’ll send a verification email when an unverified user tries to log-in or when someone tries to sign-up.

This may happen just after you’ve setup your Mailgun account, which is running in a sandbox subdomain by default. Either add your email to the list of authorized recipients or verify your domain.

Heroku & Docker

Although Heroku has some sort of Docker support, it’s not supported by cookiecutter-django. We invite you to follow Heroku documentation about it.

Optional actions Celery

Celery requires a few extra environment variables to be ready operational. Also, the worker is created, it’s in the Procfile, but is turned off by default:

# Scale dyno to 1 instance
heroku ps:scale worker=1
Sentry

If you’re opted for Sentry error tracking, you can either install it through the Sentry add-on:

heroku addons:create sentry:f1

Or add the DSN for your account, if you already have one:

heroku config:set SENTRY_DSN=https://xxxx@sentry.io/12345
Gulp or Webpack

If you’ve opted for Gulp or Webpack as frontend pipeline, you’ll most likely need to setup your app to use multiple buildpacks: one for Python & one for Node.js:

heroku buildpacks:add --index 1 heroku/nodejs

At time of writing, this should do the trick: during deployment, the Heroku should run npm install and then npm build, which run the SASS compilation & JS bundling.

If things don’t work, please refer to the Heroku docs.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4