Back to Discourse

Install Discourse on Ubuntu or Debian for Development

docs/developer-guides/docs/02-development-environments/05-ubuntu-debian-setup.md

2026.9.0-latest3.5 KB
Original Source
<div data-theme-toc="true"> </div>

:warning: This guide covers installation instructions in a development environment. For a production guide see: https://meta.discourse.org/t/how-to-install-discourse-in-production/142537


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!

Requirements

We suggest having at least 4 GB RAM and 2 CPU cores.

Current compatibility:

OSCompatibility
Debian 11
Crostini (Linux on ChromeOS)
Ubuntu 22.04 or later

Install Discourse Dependencies

You will need the following packages on your system:

** optional

Now that we have installed Discourse dependencies, let's move on to install Discourse itself.

Clone Discourse

Clone the Discourse repository in ~/discourse folder:

sh
git clone https://github.com/discourse/discourse.git ~/discourse

~ indicates home folder, so Discourse source code will be available in your home folder.

Setup Database

Create role with the same name as your Linux system username:

sh
cd /tmp && sudo -u postgres createuser -s "$USER"

[/details]

Bootstrap Discourse

Switch to your Discourse folder:

sh
 cd ~/discourse

Install the needed gems

sh
source ~/.bashrc
bundle install

Install the JS dependencies

sh
pnpm install

Now that you have successfully installed gems, run these commands:

sh
bin/rails db:create
bin/rails db:migrate
RAILS_ENV=test bin/rails db:create db:migrate

Start rails and the frontend bundler:

sh
bin/dev

If the images are not appearing, use this command instead: (you can also specify an IP if you are working on a remote server)

sh
DISCOURSE_HOSTNAME=localhost UNICORN_LISTENER=localhost:3000 bin/dev

You should now be able to navigate to http://localhost:3000 to see your local Discourse installation.

Create New Admin

To create a new admin, run the following command:

sh
bin/rails admin:create

Follow the prompts, and a new admin account will be created.

Configure Mail

Run MailHog:

sh
mailhog

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 [date=2023-04-03 timezone="America/Boise"]