Discourse: charging head-on toward 1.0

As much as I enjoyed setting up and playing with Vanilla, it became clear that the developers were focused on driving people to use their hosted platform rather than the free version. Can’t blame them for that, since that’s how they get paid and everybody likes being able to make rent and buy groceries, but their open source version was never going to get all the goodie-goodie features of their hosted version (like badging and other neat little perks).

Unlike our dalliance with Vanilla forums, though, in Discourse it looks like we’ve got a product that will actually exit beta and enter full-on release status. Jeff Atwood (@codinghorror) put up a blog post a few months back talking through the things left on the Discourse team’s plate before the app would be considered “done” (and done here of course means “ready for release,” not actually “finished”—software, like art, is never done, but instead merely eventually abandoned). @sam and the rest of the developers have kept the community updated through regular posts over on Meta, and it’s boggling my brain how far the whole thing has come in a year.

Last year, to make Discourse work, you had to do this. Look at that. Seriously. It wasn’t easy at all. It was a complicated procedure that required, among other things, compiling nginx from scratch and loading up system-wide Ruby and a bunch of other crazy gymnastics. Updating Discourse—and there were updates at least once a day—required a bunch of git commands and rake tasks, and if they failed, God help you. Today, Discourse’s installation is maybe a 30 minute process, and updating is a single button-click.

(As an aside, most of that awesomeness is due to the fact that Discourse is now run as a containerized app, thanks to Docker, which is based on LXC. I was initially very much against the switch, but after seeing how much it simplified my life, I’ve come around. It’s great!)

There’s still a lot to do, but a big chunk of the fixes remaining are cosmetic—spit-n-polish type changes. The forum app itself is stable, functional, and it’s easy to admin. The configurability is great, and it’s performant as hell (it helps that the box running the forums is pretty heavy duty, with a fast SSD and 16GB of RAM). From a user perspective, I love how the forum works, and I miss a lot of its conventions when I’m posting on phpbb or other more traditional forums.

The internal version count is already on At some point within the next few months (and maybe weeks), Discourse will hit 1.0. I’ve already started playing around with some of the cooler features slated for release (like badging!). I’m also hopeful that two-factor authentication via TOTP/Google Authenticator will make an appearance around the same time (though you can already use OAUTH and twitter, google, or yahoo, which I definitely recommend doing since it’s more secure than local passwords).

So, even though we’ve been using it for a while, welcome to Discourse! I think we’ll be staying :slight_smile:

Something I’m curious about: Is it possible to install Discourse on a machine you don’t have shell access to, like you can with PHPBB or the like? I like how Discourse runs, but most of the sites I work with don’t host themselves and most hosting providers don’t provide shell access unless you’re getting a VPS setup from them.

No—at least, not yet. Discourse depends on Docker (which itself has kernel version dependencies, as I understand it). It also has more substantive database requirements than phpbb or other forums. Most php-based forum apps will simply work with mysql and call it done, but Discourse requires both PostgreSQL (for its main production database) and also Redis (for caching and other transitory stuff).

At this stage, you can’t set up Discourse unless you can get a root shell. This may change as the install gets more and more automated, but it’s definitely not the case right now.