Skip to content

Latest commit

 

History

History
73 lines (60 loc) · 4.19 KB

HOWTO_HEROKU_DEPLOY.md

File metadata and controls

73 lines (60 loc) · 4.19 KB

Instructions for one click deployment to heroku

  • Create a heroku account (if you don't have an account)- you will need to connect a credit card to your account
  • Fill out environment variables in form --> instructions about that below
  • Unless you change the JOBS_SAME_PROCESS environment variable, do not start any of the processes besides web
  • The default setup is a free tier for processing and the database. See below for scaling and production requirements

Notes about auth0 environment variable setup

  • Create an auth0 account

  • Click on Clients

  • Click on +Create Client

  • Create a name and click on click on Single Page App - click create

  • If it asks for What technology are you using? - click ReactJS

  • Click on Settings in the tabs

  • You should see 3 variables at the top you need for your Heroku app.

    • Domain name = AUTH0_DOMAIN
    • Client ID = AUTH0_CLIENT_ID
    • Client Secret = AUTH0_CLIENT_SECRET
  • These variables should be placed in your heroku environment variables form

  • Scroll to Allowed Callback URLs section and update it with (your heroku_app_url):

    • https://<YOUR_HEROKU_APP_URL>/login-callback, http://<YOUR_HEROKU_APP_URL>/login-callback
  • Scroll to Allowed Logout URLs section and update it with (your heroku_app_url):

    • https://<YOUR_HEROKU_APP_URL>/login-callback, http://<YOUR_HEROKU_APP_URL>/login-callback

    • https://<YOUR_HEROKU_APP_URL>/login-callback = AUTH0_LOGIN_CALLBACK

    • https://<YOUR_HEROKU_APP_URL>/logout-callback = AUTH0_LOGOUT_CALLBACK

  • Scroll to Allowed Origin (CORS) add:

    • http://*.herokuapp.com, https://*.herokuapp.com
  • Scroll to bottom and click on Advanced Settings

  • Click on OAuth - make sure OIDC Conformant is turned off.

Notes about twilio environment variable setup

  • Create twilio account
  • Click on Programmable SMS on the side panel
  • Click on Messaging Services, and click the plus
  • Create a friendly name
  • Under Properties
    • SERVICE SID = TWILIO_MESSAGE_SERVICE_SID
  • Under Inbound Settings
    • Make sure PROCESS INBOUND MESSAGES is selected
    • REQUEST URL is https://<YOUR_HEROKU_APP_URL>/twilio
  • Under Outbound Settings
    • STATUS CALLBACK URL is https://<YOUR_HEROKU_APP_URL>/twilio-message-report
    • TWILIO_STATUS_CALLBACK_URL = https://<YOUR_HEROKU_APP_URL>/twilio-message-report
  • Visit the dashboard
  • Under Account Summary
    • TWILIO_API_KEY = ACCOUNT SID
    • TWILIO_APPLICATION_SID = TWILIO_MESSAGE_SERVICE_SID
    • TWILIO_AUTH_TOKEN = AUTH TOKEN

Visit here to configure messaging service features

Setting up for production scale (Database, etc)

The default deployment from the Heroku button is free, but has a processing and database limit of 10,000 messages total. This may be sufficient for a single small campaign, but if you intend multiple/regular campaigns, we recommend upgrading the database and possibly the web 'dyno' instance (to Hobby or Standard). At the time of this writing a 'hobby basic' level for the database is ~$9.00/month.

For production scale, the best time to upgrade the database is before you start using the app, because the easiest path erases all previous data. If you have existing data, please refer to Heroku docs on how to upgrade a database (it's complicated).

If you haven't used the app, after you've created the instance (filled out the variables, and 'deployed' it) follow these steps:

  1. Go to the 'Resources' tab for your app and scroll to the bottom
  2. Under 'Add-ons' to the right end of the "Heroku Postgres::Database" line, click the little up-down carrot
  3. Choose 'Remove' and follow the procedure for removal
  4. Then, in the 'Add-ons' search box (where it says 'Quickly add add-ons from Elements'), type "postgres"
  5. Choose the "Heroku Postgres" option and then choose the tier you desire (see Heroku Postgres tier documentation for details)
  6. At the very top of the page for your app, in the upper right click the 'More' button and choose 'Restart all dynos'