Handling configuration in Go

The configuration is key especially when your application starts to get a little bigger. You might need to provide parameters such as keys, passwords, URLs etc to your go application.

If any of the parameters are sensitive (such as a database password), it should not be kept in your config file which is usually committed and kept in plain text. Sensitive parameters should be served as runtime env variables.