@pierreozoux opened this Issue on November 26th 2016

Modern web application read their config from env variables.

https://12factor.net/config

it would be a really nice to have :)

@tsteur commented on November 27th 2016 Member

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

@SonOfBytes commented on February 4th 2017

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.

@webwurst commented on February 10th 2017

For configuration env variables are great, but it is discouraged to use them for secrets: https://github.com/docker/docker/pull/9176#issuecomment-99542089

@SonOfBytes commented on February 10th 2017

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.

@butzopower commented on February 14th 2017

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.

@vfbsilva commented on April 18th 2017

Any advance regarding this?

@mattab commented on June 21st 2017 Member

Not yet

Update Oct 29th: scheduling this issue

@mattab commented on October 31st 2018 Member

Hi @pierreozoux @vfbsilva @SonOfBytes
We are considering implementing this feature in a plugin.
Could you maybe confirm if reading ENV variables was for database information (host, name, password,...) only if if you had other use cases of ENV variables for Matomo?

@bbodenmiller commented on November 6th 2018

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

@tsteur commented on November 7th 2018 Member

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.

@tsteur commented on November 7th 2018 Member

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.

@pierreozoux commented on November 14th 2018

Wow :) amazing ;)

Https://12factor.net ftw!

@mattab commented on December 24th 2018 Member

Hi @pierreozoux
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:

@ZuSe commented on December 25th 2018

Hey @mattab

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] [2002] No such file or directory

Not sure if really works. I will dig deeper into it.

Best
Patrick

This Issue was closed on December 24th 2018
Powered by GitHub Issue Mirror