# ProCourse Installer

**URL:** https://meta.discourse.org/t/procourse-installer/115476
**Category:** Plugin
**Tags:** broken
**Created:** [April 19, 2019, 2:26pm UTC](https://meta.discourse.org/t/procourse-installer/115476 "2019-04-19T14:26:35Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![joebuhlig](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/joebuhlig/32/193054_2.png) [@joebuhlig](https://meta.discourse.org/u/joebuhlig)
#### Post date: [April 19, 2019, 2:26pm UTC](https://meta.discourse.org/t/procourse-installer/115476/1 "2019-04-19T14:26:35Z")

</div>

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:

 ![image](https://global.discourse-cdn.com/meta/original/3X/1/9/1908e12895b0b46a51a142cead1d07e804d46932.png)

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.

 ![image](https://global.discourse-cdn.com/meta/original/3X/1/9/19e708356fa3c5485a80d6c6e52d6eee5bb4b769.png)

* * *

A few notes:

- 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.

* * *

Requirements:

- You must be running a **supported Docker install**.

- The **Docker Manager plugin** must be installed.

- Access to `/admin/upgrade`.

* * *

Repo can be found here:

[https://github.com/procourse/procourse-installer](https://github.com/procourse/procourse-installer)

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [April 19, 2019, 2:28pm UTC](https://meta.discourse.org/t/procourse-installer/115476/2 "2019-04-19T14:28:44Z")

</div>

Wow! That’s quite an accomplishment! I thought it couldn’t be done. Nice work, @joebuhlig!

EDIT: Here’s a question. If you do a rebuild at the command-line, are the procourse-installer plugins upgraded?

---

<div class="post-metadata">

### Author: ![justin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/justin/32/157614_2.png) [@justin](https://meta.discourse.org/u/justin)
#### Post date: [April 19, 2019, 2:56pm UTC](https://meta.discourse.org/t/procourse-installer/115476/3 "2019-04-19T14:56:35Z")

</div>

> [@pfaffman](#):
>
> If you do a rebuild at the command-line, are the procourse-installer plugins upgraded?

Yes – plugins should get upgraded upon bootstrap.

---

<div class="post-metadata">

### Author: ![Cozdabuch](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/cozdabuch/32/139120_2.png) [@Cozdabuch](https://meta.discourse.org/u/Cozdabuch)
#### Post date: [April 19, 2019, 5:35pm UTC](https://meta.discourse.org/t/procourse-installer/115476/4 "2019-04-19T17:35:27Z")

</div>

Just wow!  
Nice work!

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [April 21, 2019, 12:04pm UTC](https://meta.discourse.org/t/procourse-installer/115476/5 "2019-04-21T12:04:00Z")

</div>

IMO, this deserves to be in core.

---

<div class="post-metadata">

### Author: ![Wedgebert](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wedgebert/32/131690_2.png) [@Wedgebert](https://meta.discourse.org/u/Wedgebert)
#### Post date: [April 21, 2019, 12:10pm UTC](https://meta.discourse.org/t/procourse-installer/115476/6 "2019-04-21T12:10:14Z")

</div>

So, would it be worth removing my existing plugins from the app.yml file and moving them to this installer?

---

<div class="post-metadata">

### Author: ![joebuhlig](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/joebuhlig/32/193054_2.png) [@joebuhlig](https://meta.discourse.org/u/joebuhlig)
#### Post date: [April 21, 2019, 5:48pm UTC](https://meta.discourse.org/t/procourse-installer/115476/7 "2019-04-21T17:48:36Z")

</div>

> [@itsbhanusharma](#):
>
> this deserves to be in core

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.

> [@Wedgebert](#):
>
> would it be worth removing my existing plugins from the app.yml file and moving them to this installer?

Technically, it doesn’t matter. They end up being installed in exactly the same way. This just makes it easier to do.

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [April 21, 2019, 6:32pm UTC](https://meta.discourse.org/t/procourse-installer/115476/8 "2019-04-21T18:32:10Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Wedgebert](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/wedgebert/32/131690_2.png) [@Wedgebert](https://meta.discourse.org/u/Wedgebert)
#### Post date: [April 21, 2019, 7:40pm UTC](https://meta.discourse.org/t/procourse-installer/115476/9 "2019-04-21T19:40:05Z")

</div>

> [@joebuhlig](#):
>
> 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

It could always be part of core (with a big warning label that says “only works with docker”) but leave the current install method available as well.

Even better if there’s a way to detect a compatible installation and hide or show itself as necessary.

---

<div class="post-metadata">

### Author: ![joebuhlig](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/joebuhlig/32/193054_2.png) [@joebuhlig](https://meta.discourse.org/u/joebuhlig)
#### Post date: [April 24, 2019, 1:10pm UTC](https://meta.discourse.org/t/procourse-installer/115476/10 "2019-04-24T13:10:19Z")

</div>

> [@itsbhanusharma](#):
>
> I assume the challenges associated with getting it to work with multisite are far more complex then getting to set up multisite

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.

---

<div class="post-metadata">

### Author: ![AndreSpecker](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrespecker/32/139050_2.png) [@AndreSpecker](https://meta.discourse.org/u/AndreSpecker)
#### Post date: [April 30, 2019, 5:14pm UTC](https://meta.discourse.org/t/procourse-installer/115476/11 "2019-04-30T17:14:16Z")

</div>

How i can uninstall a plugin using ssh? Because i installed [Moderator Extension](https://meta.discourse.org/t/moderator-extension/67305) and now I cant put it anymore online, [Error 502](https://meta.discourse.org/t/error-502-after-install-procourse-installer/116461)

---

<div class="post-metadata">

### Author: ![joebuhlig](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/joebuhlig/32/193054_2.png) [@joebuhlig](https://meta.discourse.org/u/joebuhlig)
#### Post date: [April 30, 2019, 5:52pm UTC](https://meta.discourse.org/t/procourse-installer/115476/12 "2019-04-30T17:52:38Z")

</div>

Assuming you can’t get to the admin panel:

1. SSH into the server.
2. `cd /var/discourse`
3. `./launcher enter app`
4. `vim /shared/tmp/procourse-installer/plugins.txt`
5. Remove the offending plugin from the file.
6. `exit`
7. `./launcher rebuild app`

---

<div class="post-metadata">

### Author: ![AndreSpecker](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrespecker/32/139050_2.png) [@AndreSpecker](https://meta.discourse.org/u/AndreSpecker)
#### Post date: [April 30, 2019, 6:30pm UTC](https://meta.discourse.org/t/procourse-installer/115476/13 "2019-04-30T18:30:49Z")

</div>

![image](https://global.discourse-cdn.com/meta/original/3X/d/7/d77316fa078375389419eee669100f81c88f96ec.png)

Cant up online 😢

---

<div class="post-metadata">

### Author: ![joebuhlig](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/joebuhlig/32/193054_2.png) [@joebuhlig](https://meta.discourse.org/u/joebuhlig)
#### Post date: [April 30, 2019, 6:36pm UTC](https://meta.discourse.org/t/procourse-installer/115476/14 "2019-04-30T18:36:30Z")

</div>

Looks like your container isn’t running. Try this `./launcher start app`

---

<div class="post-metadata">

### Author: ![AndreSpecker](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/andrespecker/32/139050_2.png) [@AndreSpecker](https://meta.discourse.org/u/AndreSpecker)
#### Post date: [April 30, 2019, 6:57pm UTC](https://meta.discourse.org/t/procourse-installer/115476/15 "2019-04-30T18:57:50Z")

</div>

Thank You, my [error 502](https://meta.discourse.org/t/error-502-after-install-procourse-installer/116461) now are resolved. 😃

---

<div class="post-metadata">

### Author: ![Ellibereth](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ellibereth/32/202896_2.png) [@Ellibereth](https://meta.discourse.org/u/Ellibereth)
#### Post date: [June 5, 2019, 8:11am UTC](https://meta.discourse.org/t/procourse-installer/115476/16 "2019-06-05T08:11:46Z")

</div>

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:

```plaintext
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'

```

---

<div class="post-metadata">

### Author: ![joebuhlig](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/joebuhlig/32/193054_2.png) [@joebuhlig](https://meta.discourse.org/u/joebuhlig)
#### Post date: [June 5, 2019, 1:23pm UTC](https://meta.discourse.org/t/procourse-installer/115476/17 "2019-06-05T13:23:51Z")

</div>

Interesting. Do you have any guesses about what you were doing when that error came to be?

---

<div class="post-metadata">

### Author: ![BobbyZopfan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bobbyzopfan/32/149374_2.png) [@BobbyZopfan](https://meta.discourse.org/u/BobbyZopfan)
#### Post date: [June 30, 2019, 4:05pm UTC](https://meta.discourse.org/t/procourse-installer/115476/18 "2019-06-30T16:05:01Z")

</div>

Some 20 or so days ago, I installed this Procourse plugin, and another plugin (I forgot which one was it) thru this plugins interface.  
After a few days, I found that many times (say once every few days) my website went dead slow. On those moments, even [safe mode](https://meta.discourse.org/t/53504?silent=true) opening went equally slow. And after 20-30 minutes I found that the speed of my site became normal.

Although I have not got necessary skills to diagnose the logs, but since the logs’ (or was it sidekiq?) warning section contained ‘procourse’ so many times, I thought it is somehow related to this plugin installed inside/thru procourse plugin. So I uninstalled that plugin from procourse interface.

But yesterday it again (almost) crashed.  
I checked and again found the word ‘procourse’ written in many many warnings in logs.

So today I decided and uninstalled procourse too.

Now my fingers are strongly crossed.

---

<div class="post-metadata">

### Author: ![joebuhlig](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/joebuhlig/32/193054_2.png) [@joebuhlig](https://meta.discourse.org/u/joebuhlig)
#### Post date: [June 30, 2019, 6:02pm UTC](https://meta.discourse.org/t/procourse-installer/115476/19 "2019-06-30T18:02:51Z")

</div>

Can you share the backtrace of one of those errors? That would help us narrow down where it’s coming from.

---

<div class="post-metadata">

### Author: ![BobbyZopfan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/bobbyzopfan/32/149374_2.png) [@BobbyZopfan](https://meta.discourse.org/u/BobbyZopfan)
#### Post date: [July 1, 2019, 1:35pm UTC](https://meta.discourse.org/t/procourse-installer/115476/20 "2019-07-01T13:35:38Z")

</div>

Since I have Uninstalled the plugin for the time being. I can have the logs sent only when next occurrence occurs.

(I don’t know if logs are kept for 2-3 days or not, if they are, then I can try).

Thanks.

[Next page](https://meta.discourse.org/t/procourse-installer/115476.md?page=2)
