Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set environment variables on Heroku for Node app and connect to the PostgreSQL database?

I know there are the same/similar questions on stack overflow and I have read the documentation too-I just still don't understand ANYTHING- how to set those variables and WHERE!! to set them.

My env/production.js file:

module.exports = {     "DATABASE_URI": process.env.DATABASE_URI,     "SESSION_SECRET": process.env.SESSION_SECRET,     "TWITTER": {        "consumerKey": process.env.TWITTER_CONSUMER_KEY,        "consumerSecret": process.env.TWITTER_CONSUMER_SECRET,        "callbackUrl": process.env.TWITTER_CALLBACK     },     "FACEBOOK": {         "clientID": process.env.FACEBOOK_APP_ID,         "clientSecret": process.env.FACEBOOK_CLIENT_SECRET,         "callbackURL": process.env.FACEBOOK_CALLBACK_URL     },     "GOOGLE": {         "clientID": process.env.GOOGLE_CLIENT_ID,         "clientSecret": process.env.GOOGLE_CLIENT_SECRET,         "callbackURL": process.env.GOOGLE_CALLBACK_URL     },     "LOGGING": true }; 

In my env/development.js file I set the variables (linked to my PostgreSQL/localhost/xxx). Do I need to set them in Heroku for all (Google, Facebook etc.) or just for the database, since I had to create one with Heroku? Do I leave the link to my local database in my development file and link to the Heroku database separately?

I don't even know if I am supposed to do it from my command line?! In the documentation it says: Heroku config:get CONFIG-VAR-NAME -s >> .env so would it be Heroku config:get CONFIG-NAME OF MY HEROKU DATABASE -s >> .env ?

I'm deploying for the first time and so confused! Help :)

like image 668
javascript2016 Avatar asked Oct 19 '16 00:10

javascript2016


People also ask

How do I set ENV on Heroku?

Heroku Web Interface The first step is to log into your account and go to the Heroku dashboard. Figure 1 illustrates my dashboard. Choose the application for which you want to set the environment variables. Once you select the application, it takes you to the overview page of that project.

Can Heroku access environment variables?

Accessing your app's config vars. Entering your environment variables in Heroku. The app deployed on Heroku can access environment variables now. This is how you can make use of a deployment platform's secrets manager to manage your environment variables.


1 Answers

According to documentation you could use heroku CLI

$ heroku config:set DATABASE_URI=database_uri_here $ heroku config:set SESSION_SECRET=session_secret ... and so on for each variable,  

or you could use UI https://dashboard-classic.heroku.com/apps/{your-app-name}/settings and provide same variables via web interface, as I mention in above comment

NODE_ENV=production is not treated specially by heroku, so you do need to provide it as well as any other env variable

ps: strictly speaking this question doesnt really belong in SO, as it's unrelated to programming. Maybe it need to be moved to SU

like image 174
dark_ruby Avatar answered Sep 18 '22 21:09

dark_ruby