Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Environment variables on production

I’m currently deploying my Rails application on Amazon and I’m facing a problem with environment variables.

I'm using the dotenv gem on development and testing and it works just fine while trying to access my environment variables, but in production it does not seem to work. I read that the dotenv gem isn't meant to work on production. I have to set almost 20 different environment variables including API keys, etc., I'm deploying with rubber/capistrano.

How can I get this working in a clean way?

like image 853
Carlos Castellanos Avatar asked Jun 17 '13 15:06

Carlos Castellanos


2 Answers

The dotenv-deployment readme mentions how you can use it in a production environment:

If you're using Capistrano 3+:

Just add .env to your list of linked_files:

set :linked_files, %w{.env}

If you're using Capistrano 2.x.x version:

In your config/deploy.rb file:

require "dotenv/capistrano"

It will symlink the .env located in /path/to/shared in the new release.

Remember to add :production group to the dotenv-rails gem in your application's Gemfile:

gem 'dotenv-rails', :groups => [:development, :test, :production]
like image 86
Andrew Avatar answered Oct 21 '22 11:10

Andrew


You could use the figaro gem. I am using this and it works fine in production.

like image 22
Mark Avatar answered Oct 21 '22 11:10

Mark