Modern web application read their config from env variables.
it would be a really nice to have :)
This would be useful for passwords etc. For other config there is some "danger" that config is not the same on all servers which causes Piwik to not work properly etc but for passwords it would be useful for sure
Yes 12 factor support (environment var injection) for all the variables that happen at config would be really useful. That would allow us to run dev/staging piwik containers on the same hosts pointing to separate DBs etc.
env variables are great, but it is discouraged to use them for secrets: https://github.com/docker/docker/pull/9176#issuecomment-99542089
Secrets are not a clear definition, because the domain of trust needs to be known. Often secrets contained to the environment is good enough so trying to protect processes from each other is overkill. Other times not leaking to the underlying system is critical. The solution and the controls it offers needs to be assessed with the risk and against relevant attack trees.
So for example using something like credstash in the container runtime to inject sensitive vars is good enough for many use cases as it is separating the management of the app from the management of the environment it is running in.
This would specifically be useful for deploying Piwik on cloud-based platforms with ephemeral filesystems that don't persist file changes across deploys / restarts, such as Cloud Foundry or Heroku.
Any advance regarding this?
Update Oct 29th: scheduling this issue
I think it could be useful for pretty much all settings. Take Grafana for instnace... all settings can be set by env variable: http://docs.grafana.org/installation/configuration/#using-environment-variables
FYI: I've implemented to read database config from environment variables optionally during installation see https://github.com/matomo-org/matomo/pull/13676
To read any other variables during runtime basically I suggest someone could work on a plugin. I might quickly have a look if that plugin can be easily developed.
Was quick to build... maybe someone give https://github.com/matomo-org/plugin-EnvironmentVariables a test and then we could publish it on the marketplace. I haven't really tested it myself.
Did you maybe have a chance to test the new plugin at https://github.com/matomo-org/plugin-EnvironmentVariables ?
I'm closing this as done as AFAIK @baywet is using it for a private project and it was working :tada:
I am testing this just know as I want to get matomo running in a cloud foundry environment (on bluemix).
I added the Plugin to my project and installed it to my plugin folder. For now the default CF variable names seem not to be supported so I set them on my own with the app. However the first deployment shows me now:
SQLSTATE[HY000]  No such file or directory
Not sure if really works. I will dig deeper into it.
I've got the same issue, https://github.com/matomo-org/plugin-EnvironmentVariables/issues/1