We launched a Discourse forum for the Inventables Community last month. It is a real hit with our customers and is quickly gaining popularity. The best part about Discourse (at least for developers) is that it is open source and built on a familiar stack of technologies (Rails, Postgres, Redis). So let’s start hacking on it!
Setting it up locally wasn’t as straightforward as I thought it would be. There are several different guides up, and it is not clear exactly which one you should use for production vs. development. After a few hours of trying to get it set up directly on my Mac (bad idea), I tried the guide to set it up on Vagrant.
Vagrant works together with VirtualBox to create a simple way to provision a development environment in code. You create a Vagrantfile that specifies exactly what your environment needs.
Then a few commands to get it started:
git clone <DISCOURSE_REPO> cd discourse # setup vagrant discourse box # this may take some time (a few minutes?) vagrant up # enter vagrant box vagrant ssh bundle install bundle exec rake db:migrate # start the server bundle exec rails s # now discourse is accessible at localhost:4000
My first question about this setup was why port 4000?
Vagrantfile source shows why:
... config.vm.network :forwarded_port, guest: 3000, host: 4000 config.vm.network :forwarded_port, guest: 1080, host: 4080 # Mailcatcher ...
Vagrant forwards to standard rails port in the virtual box (3000) out back to us on port 4000. It does the same thing for the Mailcatcher port.