Install Discourse on internal RHEL server

(Vanakenm) #1

We want to start using discourse as an exchange platform between several teams at my company. The corporate overlords here provided us with RHEL servers. From reading the meta site, here is my understanding:

  • install docker on the RedHat server
  • use the discourse docker install procedure

Is this correct? (almost all material speak about Ubuntun or cloud offering, but none of that is an available option here). Anyone has experience with this setup and some gotcha’s to share?



(Jeff Atwood) #2

Nope, no gotchas, should work. Just make sure Docker gets on there and follow the standard Docker install doc.

(Vanakenm) #3

Thanks a lot, will do that!

(Kevin P. Fleming) #4

You’ll need a pretty recent RHEL installation to be able to use Docker without changing the kernel and other bits.

(Dan Porter) #5

This is true. From testing RHEL 6.4 or greater works, RHEL 5.10 (latest) does not.

I may work on backporting Docker fully to RHEL 5, as we wish to use this at work for test frameworks, so Discourse may appear on EL5 in the near future :gift:

(Jeff Atwood) #6

Basically the Linux kernel has to be updated to support Docker. So that’s the main thing to backport.

(Vanakenm) #7

Thanks for the exact version needed Dan, that will help me check whether the provided VMs are recent enough.

(Sam Saffron) #8

Keep in mind Docker will ship in RHEL 7

(Andy Balholm) #9

If you get a kernel new enough to support Docker working reliably on RHEL 5, I want to hear about it! We haven’t managed to get a kernel newer than 2.6.32 to work for us on ClearOS 5 (a RHEL derivative).

(Vanakenm) #10

Bonus points for a bonus question: I’m not sure to be able to do that on an internet connected machine (don’t ask, please, corporate overlords said so).

Docker is available as a binary for RHEL and as far as I can understand (by just reading), the discourse install guide, once the checkout is done, there is no need of an internet connection.

Can someone confirm any of the two parts?

Thanks again for the quick & efficient answers.


You can install it wihout docker. Just need to install Postgres, Redis and a Ruby version manager (RVM recommended).

I don’t see the need to have Docker installed when you have an instance for the application.

(Dan Porter) #12

The point behind Docker for Discourse installations is to have a repeatable, consistent environment in which to run Discourse in.

Although Discourse runs fine today on RHEL6 with Postgres 9.3 from PGDG, Redis 2.4 from EPEL, and Nginx 1.4.7 from their upstream repo, this may not be the case in future. There’s also a chance that @vanakenm’s server may provide other services, that require conflicting versions of these softwares.


I agree, but anyway you need to understand how to get a Docker install updated, how internally works, often update internal componentes (database, etc).

I love docker, but it cannot be “selled” as a install+forget installation idea, you still need to have knowhow about what you are doing, even inside a docker container.

(Sam Saffron) #14

Its a long-term-game.

At the moment Docker is moving real fast, I imagine in the next year or so it will stabalize enough that you will get away with leaving the same Docker install without updating for longer terms. Now that its officially in Ubuntu and soon in Redhat it is becoming fairly pervasive.

(Vanakenm) #15

Thanks Pablo for the alternative. Why I’m leaning toward the docker install is:

  • I’m not an experimented sysadmin and the team I coach even less so,
    so I want the install to be “as standard as possible”. There is no
    experience with Discourse technology in the company (no Ruby, no
    Redis, and it’s actually a Windows shop).
  • We really want to create an exchange of ideas & opinions for our internal community, which is why I proposed to use discourse, but we
    must keep an ROI - this cannot take too much time to install/maintain
  • As Sam supposed, they may be other services running on that machine in the future

I asked for “the recommended way” for the reasons above, and it still look a good choice for us. Now, I agree that seeing Docker as a “black box” with no knowledge required, and I intend to learn what I need.


(Vanakenm) #16

Ok, I’m further down the path, and it start to become complicated: my production server is not connected to the internet. I tested the install on a internet connected machine with success (docker + discourse using Sam’s install guide), but I saw that the procedure was using the internet connection and not only to download the image (I saw a git clone and a bundle install, notably).

Now that I’ve a working version on my local machine, my idea is to use docker’s save option to save the fully configured image, and load it back to my production server using ‘import’. Would this work? Has someone already done that?

My docker images list is showing a “local_discourse/app” image which I suppose is the correct one.

Any ideas on how to proceed? If the docker image is self contained, this should work (although I suppose I should also get the discourse_docker launcher part).



(Kane York) #17

Oooohh, that’s gonna cause problems after you get it running.

  • Discourse both scans & downloads locally images you put in your posts - you can disable the downloading, but if you don’t have the scanning, then lightboxes and the smaller compressed images that it generates won’t happen.
  • Oneboxes will never work without the server having an internet connection. (These are the Wikipedia, Github, Amazon, etc boxes)
  • The e-z upgrade process runs another git pull and bundle install for you (These both hit the network)
  • It contacts to compare the official version numbers against the one in the source
  • There’s no way you’re getting reply-by-email if it can’t talk to a POP3 server
  • How were you planning on sending emails, anyways?
  • Web requests are made to to check whether or not you have a Gravatar (Wait, why were we doing this?)

(Vanakenm) #18

Hi Kane,
Thanks a lot for your input. Most of what you list is probably not blocking (I understand pretty well auto updates cannot works without a connection - if that is what the e-z upgrade process is, not sure about it). This is an “intranet” use case, with very strict corporate rules, which is most probably pretty rare.

We have a mail server on the internal network that we are using for several other internally installed application (like Atlassian Jira for instance).

Still, this looks like it would be better to search for an alternative to discourse for my “corner case”. Better to know it anyway, so thanks for your time.


(Sam Saffron) #19

This is slotted to go away fairly soon. Gravatar will be 100% optional and only copied over on account creations.