This guide covers installation instructions in development environment. For a production guide see: Install Discourse in production with the official, supported instructions
So you want to set up Discourse on Ubuntu or Debian to hack on and develop with?
We’ll assume that you work locally and don’t have Ruby/Rails/Postgres/Redis installed on your Ubuntu or Debian system. Let’s begin!
We suggest having at least 4 GB RAM and 2 CPU cores.
Install Discourse Dependencies
As regular user run this script in terminal, to setup Rails development environment:-
bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/master/linux)
This will install following new packages on your system:
- Ruby (stable)
In case you have any of this package pre-installed and don’t want to run entire script, see the script and pick the packages you don’t have currently installed. The script is fine-tuned for Discourse, and includes all the packages required for Discourse installation.
Now that we have installed Discourse dependencies, let’s move on to install Discourse itself.
Clone the Discourse repository in
git clone https://github.com/discourse/discourse.git ~/discourse
~ indicates home folder, so Discourse source code will be available in your home folder.
Create role with the same name as your Linux system username:
sudo -u postgres createuser -s "$USER"
Switch to your Discourse folder:
Install the needed gems
source ~/.bashrc bundle install
Install the JS dependencies
Now that you have successfully installed gems, run these commands:
bin/rails db:create bin/rails db:migrate RAILS_ENV=test bin/rails db:create db:migrate
Try running the specs (optional):
All the tests should pass.
Start rails and ember server:
You should now be able to navigate to http://localhost:4200 to see your local Discourse installation.
Create New Admin
To create a new admin, run the following command:
Follow the prompts, and a new admin account will be created.
Congratulations! You are now the admin of your own Discourse installation!
Happy hacking! And to get started with that, see Beginner’s Guide to Creating Discourse Plugins.
Last Reviewed by @blake on 2023-03-22T06:00:00Z