This plugin is designed to make it extremely easy to install new plugins without logging into the server. It adds a screen under /admin/plugins/procourse-installer that looks like this:
From there, you can enter the URL (with or without .git) of the plugin git repo and click Install Plugin. Wait a few minutes (about 5 minutes) for the installation to complete and you’re good to go.
To see all the plugins you’ve installed through the installer or to remove a plugin, just go to Installed Plugins.
These plugins DO remain after a rebuild or bootstrap of app or web_only.
It is currently untested on multisite instances and will likely fail in those scenarios as the plugin needs access to the /plugins directory of the application in order to function.
The plugins installed WILL show up under /admin/plugins.
You CAN upgrade these plugins as normal from /admin/upgrade.
In the process of building this, we found a potential error when removing translations from plugins. It can cause the site to show an error if the user visits a page where the translation is used. This seems to happen even if you use admin/upgrade to upgrade a specific plugin and the plugin has removed a translation. We’re working on finding a solution to this currently.
I have to admit that I’m conflicted on this one. It would really cool to be in core but if it’s in core, installing plugins will only work on Docker installs and non-multisite installs. That would cause problems for a quite a lot of instances.
Technically, it doesn’t matter. They end up being installed in exactly the same way. This just makes it easier to do.
I assume the challenges associated with getting it to work with multisite are far more complex then getting to set up multisite (which none of my clients have deployed) and I’m saying that from managing over 2 dozen active discourse installations.
It should be easier to include this in the standard app.yml on bootstrap for the standalone installs and not including the same in a multisite/multi container/HA setup.
The main challenge is precompiling assets and such. We’re effectively adding the repo to the /plugins and then running an docker manager upgrade on that specific plugin. That handles the magic side of it.
But in a multisite, you run into issues because you don’t want one instance to be able to make edits for all instances in the multisite.
I think the installer is working fine but I saw this in my error log, not sure if it’s anything but thought I’d might as well bring it up:
NameError (uninitialized class variable @@install_state in ProcourseInstaller::InstallController)
/var/www/discourse/plugins/procourse-installer/app/controllers/procourse_installer/install_controller.rb:4:in `status'
Около 20 дней назад я установил плагин Procourse и ещё один плагин (не помню, какой именно) через интерфейс плагинов.
Через несколько дней я заметил, что мой сайт периодически (примерно раз в несколько дней) начинал работать крайне медленно. В такие моменты даже открытие в безопасном режиме происходило с той же задержкой. Спустя 20–30 минут скорость работы сайта возвращалась к норме.
Хотя у меня нет достаточных навыков для анализа логов, но поскольку в разделе предупреждений логов (или, возможно, Sidekiq?) очень часто встречалось слово «procourse», я решил, что проблема как-то связана с плагином, установленным внутри или через плагин Procourse. Поэтому я удалил этот плагин через интерфейс Procourse.
Но вчера сайт снова (почти) упал.
Я проверил и снова обнаружил слово «procourse» в большом количестве предупреждений в логах.
Поэтому сегодня я принял решение и удалил также сам плагин Procourse.