matomo-org / matomo

Empowering People Ethically with the leading open source alternative to Google Analytics that gives you full control over your data. Matomo lets you easily collect data from websites & apps and visualise this data and extract insights. Privacy is built-in. Liberating Web Analytics. Star us on Github? +1. And we love Pull Requests!
https://matomo.org/
GNU General Public License v3.0
19.93k stars 2.66k forks source link

Read Environment variables into Matomo config #10914

Closed pierreozoux closed 5 years ago

pierreozoux commented 8 years ago

Modern web application read their config from env variables.

https://12factor.net/config

it would be a really nice to have :)

tsteur commented 8 years ago

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 7 years ago

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 7 years ago

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 7 years ago

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 7 years ago

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 7 years ago

Any advance regarding this?

mattab commented 7 years ago

Not yet

Update Oct 29th: scheduling this issue

mattab commented 6 years ago

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 6 years ago

I think it could be useful for pretty much all settings. Take Grafana for instance... all settings can be set by env variable: http://docs.grafana.org/installation/configuration/#using-environment-variables

tsteur commented 6 years ago

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 6 years ago

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 6 years ago

Wow :) amazing ;)

Https://12factor.net ftw!

mattab commented 5 years ago

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 5 years ago

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

toredash commented 5 years ago

@ZuSe I've got the same issue, https://github.com/matomo-org/plugin-EnvironmentVariables/issues/1

mingfang commented 1 year ago

we need matomo to support env variables natively, not using another plugin.