Install Plugins in Discourse


(Jay Pfaffman) #108

If you are planning to use Discourse, you should follow the cloud install instructions.

(Kyle Boyce) #109

@sam did this ever get solved?

(Jeff Atwood) #110

No, perhaps by 2020, there is a lot of stuff on the plate.

(Jay Pfaffman) #111

If you separate the data and web containers you can bootstrap a new image without shutting down the running one.

(Kyle Boyce) #112

I have no clue what that means :man_shrugging:t2:

(Jay Pfaffman) #113

If you search for “data container” you’ll find


Hi, is this post still valid? I got the error below that the /user/.ssh directory doesn’t exist:

I, [2017-10-02T11:09:05.337068 #13]  INFO -- : > echo "Host\n\tStrictHostKeyChecking no\n" >> /user/.ssh/config
sh: 1: cannot create /user/.ssh/config: Directory nonexistent
I, [2017-10-02T11:09:05.344774 #13]  INFO -- : 

Pups::ExecError: echo "Host\n\tStrictHostKeyChecking no\n" >> /user/.ssh/config failed with return #<Process::Status: pid 13963 exit 2>
Location of failure: /pups/lib/pups/exec_command.rb:108:in `spawn'
exec failed with the params "echo \"Host\\n\\tStrictHostKeyChecking no\\n\" >> /user/.ssh/config"
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one

Adding mkdir /user/.ssh before that didn’t work, so I’m honestly not even sure if my docker is running as user (having it run a whoami shows it’s running as root so I’m trying to change things to reflect that)…

UPDATE: Got it working

  1. Change all mentions of /user/ to /root/ (unless it’s not supposed to be running as root?!)
  2. Add mkdir /root/.ssh and chmod 700 ./root/.ssh before the .ssh/config file creation

So now I’m wondering if my docker running as root is a bad thing, or if the instructions above need to be updated just slightly.


^^^ The above post just stopped working for me, and now my forum is hosed.

I, [2017-11-30T06:18:58.231418 #13]  INFO -- : > cd /var/www/discourse && sudo -E -u discourse bundle exec rake db:migrate
I, [2017-11-30T06:19:15.940308 #13]  INFO -- : `/root` is not writable.
Bundler will use `/tmp/bundler/home/discourse' as your home directory temporarily.

Not sure why /root is not writeable, especially since my user is root… I’m going to try to chmod 700 it first. Otherwise I need to remove some of these custom commands I guess.

These are the commands that stopped working, it seems, from this comment:

  - exec: cd $home && sudo -E -u discourse bundle exec rake db:migrate
  - exec: cd $home && rm -fr tmp/cache
  - exec: cd $home &&  sudo -E -u discourse bundle exec rake assets:precompile

Confirmed. Remove those three commands above and we’re back in business. Hopefully the plugins I was installing are still working. They seem to be.

(Jay Pfaffman) #118

Hey @sam, I just did a ./launcher bootstrap multy on a multisite instance and it failed the same way.

I’ve not checked any other instances yet, but it may be worth a look.

edit: I had about 5.5GB of space after the last rebuild. I did a ./launcher cleanup and rebuilt again and it was successful.


Think this was the real fix? run a cleanup? And I can uncomment my above three lines causing problems and try again?

(Jay Pfaffman) #120

I don’t know. It was for me. If you’ve got many plugins it could be that the 5GB guestimate of necessary space is wrong.

How much space do you have?


Don’t think that’s my issue:

# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            2.0G     0  2.0G   0% /dev
tmpfs           396M   16M  380M   4% /run
/dev/vda1        58G   35G   24G  61% /
tmpfs           2.0G  2.8M  2.0G   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/vda15      105M  3.4M  102M   4% /boot/efi
none             58G   35G   24G  61% /var/lib/docker/aufs/mnt/12341d6ba5aa3bd27228268df48de97876b386123dd45983eca3a25623788956
shm              64M     0   64M   0% /var/lib/docker/containers/a0a92872e0bd966418d371c3e7a56c399dfd4d5046c59677548d6215f271bd0c/shm
none             58G   35G   24G  61% /var/lib/docker/aufs/mnt/82352ad3ae221b769b5efd1f08d6d28fd3347ae52efac77a20bb939935be5567
shm              64M     0   64M   0% /var/lib/docker/containers/d6655eb54f481c124caf4b33cd95774dd3d1aad80b21ee0ca0a1dbd04f0b0248/shm
tmpfs           396M     0  396M   0% /run/user/1000


I am adventurous and want to install memberful.

How do I manage the first step in this step by step guide, “access the server”?

Is it in the launch console window on DO? If so, which login do I use, the keys are not typing in their usual function in that window?


(Mohammad Mustafa Ahmedzai) #124

Thank you and I wish @techAPJ and @sam may take your words seriously. Because honestly speaking the tutorials written by them can only be understood by people well versed working with cloud environments. I learnt how to connect to my server and rebuild the discourse after following dozens of tutorials on internet and finally doing it right. The tutorials on discourse never helped because they are really not written step wise so that even a newbie like me could easily understand it.

Great work @Devanil for making it so simple!

(Sam Saffron) #125

The way we improve documentation here is using the wiki functionality:

If you click edit here: on the topic Install a Plugin <- a link, click me


You can add the screenshots you want there. If we are unhappy with the edit we can always roll it back.

(Sam Saffron) #126

A post was split to a new topic: Error installing the discourse jwt plugin

(Daniel Pfeifer) #127

For anyone wishing to install plugins hosted in a private repo, what worked for me was using an o auth token to install my plugin Easier builds and deployments using Git over HTTPS and OAuth · GitHub

doing it this was you can add your plugin in the same space as any other and you don’t need to create an ssh key

    - exec:
        cd: $home/plugins
              - git clone https://<token>


Forgive my naivety as I am not too familiar with docker or rails but what is the reason to need to rebuild every time you want to add a new plugin? Just for general ease of use, could they not just be installed from within Discourse similar to pretty much every other system out there with an upload and install button? Is there a benefit to having to do it this way?

(Mittineague) #129

It has to do with assets getting compiled and caching.

My take is that how it’s done is a balance between performance and ease of making changes.

True, the server being “reset” may slow things down for a while, but it’s a short term pain for a long term gain.

(Daniela) #130

8 posts were split to a new topic: How to access app.yml?