Continuing the discussion from unMonastery:
As far as I understand it, he is not opposed to experiment with running the original allmende.io discourse farm plus further sites.
Continuing the discussion from an email thread with questions from
- James
Could you expand one layer on that please - e.g. how does a ‘discourse farm’ work?
A Discourse Farm is a frontend web server which directs requests depending on their Host Headers to respective data storage and database locations.
- Thomas
I’ve just learned how to use docker etc, so I can not add much experience.
Doing a single instance docker installation was straightforward using the above link.
Pitfalls for me where configuration of google sign in, for which I had to set
proxy_set_header Host $http_host;
in nginx proxy rules.
- How should the layout of a multisite docker installation look like?
- Which services should be shared ?
Following https://github.com/discourse/discourse_docker/tree/master/samples this could be
- data layer (postgres)
- cache layer (redis)
- web layer (ruby, nginx)
But, is it wise to have these layers installed in one vm ?
As I understand, if you want to separate things, making installs independent:
use one vm for a standalone install of a single discourse
Everybody is of course free to run their own instances. What we want to offer is a Discourse farm to minimize maintenance efforts.
As unMonastery and OSCED are already keen on using Discourse, plus TransforMap and its sisters already depend on it, running a single farm is just a subjective preference.
If one wants to increase performance, would one install docker directly to the main machine(s) and install the different layers there ?
I believe we are not yet optimizing performance issues. But it makes sense to think about it. We could easily separate a front end web server from databases.
The configuration should then somehow resemble a set of docker database containers which are linked to the web instance.
I believe, as long as we are not using/offering an S3 compatible storage layer, data-only volumes for assets would also make sense.
- James
Thanks for the info. Just to be clear - can I understand what the ’discourse farm’ is right now? Is it just a collection of several discourse hosts, or do you currently have some infrastructure that is shared across discourse instances?
Right now the Discourse farm is a VM in Denver/US which holds a couple of PostgreSQL databases, static asset directories and the frontend web servers.
All these would be decoupled within a migration to a Docker based farm.
FYI I’m trying to get the unMonastery discourse running in the next day or so, then after that’s up and running will try to see if we can move towards the ‘farm’ idea together.
Let’s continue this conversation here.