Как установить переменные среды на приложение heroku для узлов и подключиться к базе данных postgresql?

Я знаю, что есть те же/похожие вопросы о переполнении стека, и я тоже прочитал документацию. Я просто все еще не понимаю ANYTHING-, как установить эти переменные и WHERE !! установить их.

Мой файл env/production.js:

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
};

В моем файле env/development.js я устанавливаю переменные (связанные с моим postgres/localhost/xxx). Нужно ли устанавливать их в герою для всех (Google, Facebook и т.д.) Или просто для базы данных, так как мне нужно было создать ее с герокой? Я оставляю ссылку на свою локальную базу данных в своем файле разработки и отдельно ссылку на базу данных heroku?

Я даже не знаю, могу ли я сделать это из командной строки?! В документации написано: heroku config: получите CONFIG-VAR-NAME -s >>.env, так что бы это была конфигурация heroku: получите CONFIG-NAME OF MY HEROKU DATABASE -s >>.env?

Я развертываю в первый раз и так запутался! Помогите :)

Ответ 1

Согласно документации вы можете использовать heroku CLI

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

или вы можете использовать UI https://dashboard-classic.heroku.com/apps/ {your-app-name}/settings и предоставлять одинаковые переменные через веб-интерфейс, как я упоминал выше.

NODE_ENV=production не обрабатывается специально heroku, поэтому вам нужно предоставить его, а также любую другую переменную env

ps: строго говоря, этот вопрос действительно не принадлежит SO, поскольку он не связан с программированием. Возможно, его нужно перенести в SU

Ответ 2

Использование:

heroku config:set $(cat .env | sed '/^$/d; /#[[:print:]]*$/d')

установить свой конфиг из .env файла.

Ответ 3

В частности, переменные подключения к базе данных не будут работать через переменные Heroku env. Я бы предложил использовать dotenv и установить переменные для файла, установив Heroku CLI, а затем использовать bash:

heroku login
heroku run bash -a app_name

создайте файл .env, если его там нет, и добавьте в него значения

touch .env
echo "ENV_VAR=value" >> .env

подтвердить запись в файле

cat .env