the only supported setup method involves Docker. If your server does not yet support Docker, installing it may be difficult. Using Docker requires root or root-equivalent privileges.
Docker is a wrapper around recent kernels’ LXC framework. It allows you to run applications in a container that is isolated from the rest of the operating system; almost like a virtual machine, except that LXC virtualizes certain kernel interfaces and data structures, not the hardware.
If you do run Discourse in a Docker container, be aware that the default setup assumes that it will be the only webserver running on the machine and will try to grab the HTTP and HTTPS port. It is, however, possible to chain Discourse behind another webserver such as Apache, and there’s a howto regarding this topic in this forum.
If you want to use Apache as the frontend server, you should definitely use the event MPM. The default prefork MPM can not deal efficiently with long-lived connections, and Discourse uses longpolling to push notifications from the server to active clients.
Installing Discourse without Docker is a bit of an adventure. It can be done but requires a fair bit of experience with general Linux admin, Ruby, and good Google-fu; and there is no official support. The biggest hurdle is that you will almost certainly require root privileges to install missing dependencies along the way; among other things, you will need:
Redis,
PostgreSQL 9.2 or newer,
Ruby 2.0 or later, with Rubygems
A working C compiler with libtools, bintools, etc.
I come from a community that switched to Discourse a little over a year ago and has 3.2K active members on the forums alone.
I love it as a member of said community, but it doesn’t seem like its the most user friendly when it comes to installation. I suppose that’s the price to pay.
From a security standpoint, you would do note that Linux containers only prevent well-behaving applications from accidentally causing damage, they do not prevent intentional damage.
That being said, if you have a recent enough kernel with AUFS, add your user to the docker group and it should work.
I can see what you mean. Also i’m a bit confused about Docker. Its basically a virtual machine to host the rails application for my web server- to my understanding.
As for Docker’s services, it looks like its bills you monthly in order to continue using its services. Much like any other hosting provider, correct?
No, Docker is free software and runs on your server. It is not an external service.
That said, you can build a Docker “image” and distribute this through Docker’s image repository, and this may involve some costs, but Discourse does not use this feature.
Yes and no: What is a Container? | Docker some call it a lightweight VM, it basically offers some of the advantages of virtualization, but comes along with a smaller memory footprint because the Docker images share the OS with the “host”.