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
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.
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
/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?
We won't do this AFAIK