The way that actionhero handles this is per-environment configs. You can have default configs for things, and then overwrite them per environment. Some things are OK to check in (like the port your web server listens on), while others you want to keep secret.
For the actual secrets, you have a few options:
- You can go the heroku/12-factor application way and source things from your ENV. So you might have a line like: `password: process.env.secret_password || "default_password"`. You could check this in safely, and not need the per-NODE_ENV settings
- You can use your deployment tool (chef/puppet/ansible/etc) to manage config files which you have only in the production environments. Just symlink these over the files you have checked in, and actionhero will source them.
I'ver personally used both methods, and I find that for a small number of settings, I prefer the ENV method, but for larger more complex projects, I love the clarity "secret" files provide which are managed/deployed outside of my application