Discourse Setup?

@Lee_Ars: I have the possibility soon of setting up a Discourse forum for someone and as you’re the resident expert, I figured I’d ask:

I know you have the guide on setting up Discourse on Nginx, do you have any experience setting it up in other environments such as Apache? Any pointers you can sling my way? Anything I need to watch out for?

There’s actually an official install guide here, though it too is focused around nginx.

Discourse is a many-layered beast. Out of the box, it uses a Ruby-based web server called thin to do everything. If you can’t or don’t want to run thin on port 80, you can reverse-proxy to it from another web server like Nginx or Apache, but it’s not required—Discourse can run completely on its own without any reverse-proxy.

I took things in a somewhat different direction and replaced thin with Passenger, which lets me use my existing Nginx web server setup without me having to learn about tuning and configuring thin. Passenger also works quite well with Apache, but I don’t know the specifics because really all I know how to do with Apache is remove it.

You can also use other Ruby-based web servers with Discourse—other favorites are puma and unicorn, but if “Ruby-based web server” sounds scary, my advice is to stick with thin or try out Passenger.

For me, the hardest part about setting up Discourse was getting system-wide Ruby to work right and then making Discourse run under a service account’s context. I did it prior to there being a lot of documentation and it was a nightmare, but I learned a lot—like, Ruby is great for developers and shitty for sysadmins. Things have gotten a lot easier in the months since then.

That’s about all I can tell you without specific info on your environment. What exactly are you going to be running?

@Lee_Ars: I was asked to put a quote together for a friend who’s looking to put together an online presence for a business venture he and a friend of his were putting together. It’d be basically a Wordpress business page, a plugin for a webstore, and then he wanted a forum for feedback and discussion on the store’s products. I had immediately thought of Discourse.

As for server environment, I’d be purchasing hosting that runs CentOS and has PHP5 and Apache pre-loaded. I honestly don’t know if I’d directly have permission to set up an alternate web server than Apache, but I’m good friends with the guy who runs this hosting space so I could possibly convince him to install something separate for this account. As far as he’s told me, Ruby should already be installed on the machines as they are.

Now, nothing says that this guy’ll even approve the quote I sent, since I don’t do “friends rates” for web design anymore (got hosed too many times)…but I’d like to hope that it could work without having to have a full VPS server with shell access rather than just being able to set up Discourse on standard shared hosting.