# Install plugins on a self-hosted site

**URL:** https://meta.discourse.org/t/install-plugins-on-a-self-hosted-site/19157
**Category:** Self-Hosting
**Tags:** how-to
**Created:** [August 22, 2014, 2:59am UTC](https://meta.discourse.org/t/install-plugins-on-a-self-hosted-site/19157 "2014-08-22T02:59:12Z")
**Posts on this page:** 1
**Showing post:** 358

<div class="post-metadata">

### Author: ![TedJohnson](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tedjohnson/32/486408_2.png) [@TedJohnson](https://meta.discourse.org/u/TedJohnson)
#### Post date: [February 11, 2025, 5:15pm UTC](https://meta.discourse.org/t/install-plugins-on-a-self-hosted-site/19157/358 "2025-02-11T17:15:49Z")

</div>

> [@Discourse](#):
>
> Add the plugin’s repository URL to your container’s `app.yml` file:
> 
> ```plaintext
> hooks:
> after_code:
> - exec:
> cd: $home/plugins
> cmd:
> - sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git
> - sudo -E -u discourse git clone https://github.com/discourse/discourse-solved.git
> 
> ```

What would have helped me was if these instructions said something like, “Hey dummy! Don’t run the `git clone` command from the shell. Just add the command to the `app.yml` file per the example, make sure the indents are correct, save it, and then run the rebuild command.”

These instructions could also be clearer when `-E -u` are necessary and when they are not.

I did some other dumb things to before I succeeded. When I look at the instructions now, they make nearly perfect sense. But I fell into several pitfalls that I might have avoided if these instructions were written considering noobs like me would be trying to follow them.

---

_[View the full topic](https://meta.discourse.org/t/install-plugins-on-a-self-hosted-site/19157)._
