Hi there,
I’m confused by the installation instructions. Is there a way to scale discourse horizontally?
For ex: having 2+ docker containers on different servers each running discourse?
The multiple container configuration setup is far more flexible and robust, however it is also more complicated to set up. A multiple container setup allows you to:
Minimize downtime when upgrading to new versions of Discourse. You can bootstrap new web processes while your site is running and only after it is built, switch the new image in.
Scale your forum to multiple servers.
Add servers for redundancy.
Have some required services (e.g. the database) run on beefier hardware.
If you want a multiple container setup, see the data.yml and web_only.yml templates in the samples directory. To ease this process, launcher will inject an env var called DISCOURSE_HOST_IP which will be available inside the image.
Is there a place where I can find more info on how I can run the containers on different servers, and not many containers on the same server?
Run ./launcher bootstrap app somewhere. This will result in a container image being created in the local machine. Upload this image to your container registry service.
Now you can spin as many instances as you want, telling all to run the image exported in the previous step.
You can use multisite to have a single container serving multiple sites (using the same plugins and Discourse version). This describes how to do that without an external reverse proxy. If you try that, please leave a comment there and let me know whether it worked. I intend to post it here when I am fairly certain it works.
Running containers on multiple servers is the same as any of the above. You’d have multiple containers sharing the same Redis and Postgres running behind a load balancer.
السؤال الأول حول Sidekiq في حالة تشغيل العديد من web_only.yml docker، كل منها في جهاز افتراضي مختلف: في هذه الحالة الأولى، قد تقوم مثيلات Sidekiq المختلفة التي تشترك في نفس خادم Redis بتشغيل نفس المهمة مرتين، هل Discourse قوي لمثل هذا الخطأ؟ هل من الأكثر موثوقية استخدام واحد Sidekiq في جهاز افتراضي مخصص (أو Docker)، وكيف يمكن فصله عن web_only Discourse؟
بخصوص ملاحظاتك الأخيرة حول التثبيت المدعوم: أتفهم أن الناس قد يكون لديهم طرق لا نهائية لإنشاء تكوينات حاويات متعددة، ولكن في رأيي، نحتاج إلى طريقة مدعومة لتشغيل مثيلات متعددة للتوسع الأفقي و/أو التوفر العالي في حالتين: بناءً على الأجهزة الافتراضية (مختلفة web_only Discourse docker في أجهزة افتراضية مختلفة و Redis/Postgres مثبتة في أجهزة افتراضية منفصلة أخرى مباشرة دون استخدام docker) وبناءً على الحاويات (كل شيء يعتمد على الحاويات).