@crazy-max opened this Issue on May 24th 2018


I'm here about an issue concerning plugins path. This comes from matomo-org/docker#89 and matomo-org/docker#97.

Today all plugins (including core ones) are written in /var/www/plugins folder. On a load balanced environment you said to add multi_server_environment=1 in the config and next you said :

it will then not allow the installation of a plugin via the UI (or the plugin would be only installed on one server), or it will not allow config file changes from the UI (as the config file would be updated on one server only)

It's a major issue for me and i think this can be solved with a new feature. We should separate core plugins (included in piwik archive) and user plugins. Nextcloud uses this trick to be able to persist plugins folder on Docker. On Nextcloud you can have this config :

array (
    0 =>
    array (
      'path' => '/var/www/apps',
      'url' => '/apps',
      'writable' => false,
    1 =>
    array (
      'path' => '/data/userapps',
      'url' => '/userapps',
      'writable' => true,

This way user apps will be written in /data/userapps and plugins are listed from /var/www/apps (core) and /data/userapps (user).

And it's an issue on Docker too (specially on Swarm or k8s). We cannot persist the folder /var/www/plugins because on image update this folder will have core plugins from the previous version of the image.

@tsteur commented on May 25th 2018 Member

Sorry I'm not quite getting how a different location would solve a problem? I doubt we will make this change as it would be quite a big refactoring going on for quite a while. How is plugins different to core, or third party plugins? Can it not persist writeable directories? FYI: Even certain paths like misc/user, /js and other paths need to be writeable will they be a problem as well?

I don't know how that docker is being built, but can you start a docker image and deploy the code from a git repository or something? Or also persist the user plugins or load them on demand etc?

@mattab commented on May 31st 2018 Member

We won't do this AFAIK

This Issue was closed on May 31st 2018
Powered by GitHub Issue Mirror