# Discourse developement environment setup

**URL:** https://meta.discourse.org/t/discourse-developement-environment-setup/220492
**Category:** Self-hosting
**Created:** [March 9, 2022, 5:10am UTC](https://meta.discourse.org/t/discourse-developement-environment-setup/220492 "2022-03-09T05:10:19Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Hemant\_Raju1](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hemant_raju1/32/249206_2.png) [@Hemant\_Raju1](https://meta.discourse.org/u/Hemant_Raju1)
#### Post date: [March 9, 2022, 5:10am UTC](https://meta.discourse.org/t/discourse-developement-environment-setup/220492/1 "2022-03-09T05:10:19Z")

</div>

Hii

I have installed discourse for development using docker .

Followed this: [Install Discourse for development using Docker](https://meta.discourse.org/t/beginners-guide-to-install-discourse-for-development-using-docker/102009)

So now i want to start making some changes in functionality/code.  
Here what i exactly looking for is how to setup the code now and how debug the code and  
i want to see those changes reflecting in localhost:4200.

I am unable to understand how to move forward.

Do i still need to setup and install any other services/dependencies ??

Please guide me.

---

<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: [March 9, 2022, 3:20pm UTC](https://meta.discourse.org/t/discourse-developement-environment-setup/220492/2 "2022-03-09T15:20:39Z")

</div>

> [@Hemant\_Raju1](#):
>
> So now i want to start making some changes in functionality/code.

yes, but you almost certainly want to do that by creating a plugin (the alternative is that you want to submit changes to Discourse core). See [Beginner’s Guide to Creating Discourse Plugins Part 1: Creating a basic plugin](https://meta.discourse.org/t/beginners-guide-to-creating-discourse-plugins-part-1-creating-a-basic-plugin/30515). And also I recommend that you start with [GitHub - discourse/discourse-plugin-skeleton: Template for Discourse plugins · GitHub](https://github.com/discourse/discourse-plugin-skeleton).

But if you see Discourse in your browser, then you can add that skeleton plugin and start making changes there. The other place to look (once you sort of knojw what you’re doing) is [discourse/lib/plugin/instance.rb at main · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/main/lib/plugin/instance.rb)

---

<div class="post-metadata">

### Author: ![Hemant\_Raju1](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hemant_raju1/32/249206_2.png) [@Hemant\_Raju1](https://meta.discourse.org/u/Hemant_Raju1)
#### Post date: [March 9, 2022, 6:51pm UTC](https://meta.discourse.org/t/discourse-developement-environment-setup/220492/3 "2022-03-09T18:51:11Z")

</div>

Thanks @pfaffman for your reply.

---

<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: [March 9, 2022, 7:07pm UTC](https://meta.discourse.org/t/discourse-developement-environment-setup/220492/4 "2022-03-09T19:07:09Z")

</div>

> [@On another topic](https://meta.discourse.org/t/220540/1):
>
> Generally which IDE we can use comfortably ( vscode, jetbrains rubymine)

I use vscode. It turns out that it is at least as hard to configure to do what you want as Emacs is. I think that there is a topic about configuring vscode, that might be helpful. I have finally gotten it mostly set up so that it’ll catch most linting problems if I’ll pay attention to them.

> [@On another topic](https://meta.discourse.org/t/220540/1):
>
> which framework do you for plugins development,

Discourse is written in Ember, so you’ll want to use that.

> [@Hemant\_Raju1](#):
>
> Do i still need to setup and install any other services/dependencies ??

You shouldn’t need to install anything else, that’s what the docker does. If you can see Discourse at localhost:4200, then you’re all set. You can make changes to the plugin and reload the page and see what happened (for some things you don’t need to reload the page).

If whatever you want to do has to do only with what is displayed, you can use a theme component rather than a plugin. In that case, you don’t even need a development environment.

You first step is probably to work through the plugin and/or theme development guides. Also, if you say exactly what you want to do, then you might get help (like “that’s already implemented”, “see XXX plugin”, or some pointers on how to proceed).
