Learn

How to build a Python based application on Heroku using Redis

Ajeet Raina
Author
Ajeet Raina, Former Developer Growth Manager at Redis

Step 1. Create Redis Cloud#

Create your free Redis Cloud account. Follow this link to create Redis Cloud subscription and database as shown below:

Save the database endpoint URL and password for future reference.

Step 2. Create a Heroku account#

If you are using Heroku for the first time, create your new Heroku account through this link

Step 3. Install Heroku CLI on your system#

 brew install heroku

Step 4. Login to Heroku#

 heroku login
 heroku: Press any key to open up the browser to login or q to exit:
 Opening browser to https://cli-auth.heroku.com/auth/cli/browser/XXXXXXXXXXA
 Logging in... done
 Logged in as your_email_address

Step 5. Connect your application to Redis Cloud#

For this demonstration, we will be using a Sample Rate Limiting application

Clone the repository#

 git clone https://github.com/redis-developer/basic-rate-limiting-demo-python

Run the below CLI to have a functioning Git repository that contains a simple application as well as a package.json file.

$ heroku create
Creating app... done, ⬢ fast-reef-76278
https://fast-reef-76278.herokuapp.com/ | https://git.heroku.com/fast-reef-76278.git

Step 6. Setting up environment variables#

Go to Heroku dashboard, click "Settings" and set REDIS_ENDPOINT_URI and REDIS_PASSWORD under the Config Vars. Refer to Step 1 for reference.

Step 7. Deploy your code#

Heroku generates a random name (in this case fast-reef-76278) for your app, or you can pass a parameter to specify your own app name. Now deploy your code:

$ git push heroku
Enumerating objects: 512, done.
Counting objects: 100% (512/512), done.
Delta compression using up to 12 threads
Compressing objects: 100% (256/256), done.
Writing objects: 100% (512/512), 1.52 MiB | 660.00 KiB/s, done.
Total 512 (delta 244), reused 512 (delta 244)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Building on the Heroku-20 stack
remote: -----> Determining which buildpack to use for this app
remote: -----> Python app detected

emote: -----> Compressing...
remote:        Done: 59.3M
remote: -----> Launching...
remote:        Released v5
remote:        https://fast-reef-76278.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/fast-reef-76278.git
 * [new branch]      master -> master

Step 8. Accessing the application#

Open https://fast-reef-76278.herokuapp.com/ to see your application