we’re considering migrating from our current forum software to self hosted Discourse, and I’m interested in some anecdotal evidence regarding possible resource requirements.
Our forum has been running for about 20 years, containing 560,000 posts in 37,000 threads. New posts are created at a rate of about 200 per day. We have 8,500 registered users of which 1,000 have been active in the last year. The system deals with about 1,000 anonymous and up to 200 logged-in concurrent sessions.
I’m looking for reports of people running installations of similar size - Do you use the standard installation method (fat docker image) or did you have to tune the setup to deal with the load? How much CPU and RAM do you allocate to your system? Anything else that I should know?
I’d start with a two-container setup with assets on S3 and CDN in front of the site and the S3 bucket. I’d start with 8GB or 16GB of RAM, perhaps depending on what you’re using right now.
How many pageviews do you get in a day and/or month?
If that’s not enough, you could add a load balancer and more servers running the web container.
How much CPU and RAM are you using now? What platform?
By “two-container setup” you mean what is described in this howto post and assets in S3 would be described in this post? For my education, if we’d use, say, CloudFront as our CDN and point it at S3 for file uploads, would that make all uploads publicly accessible or is there a mechanism that makes it possible to restrict access to uploads based on permissions in Discourse?
Our current site gets about 200k page views by roughly 30k distinct users per day with another 200k of bot & scraper traffic.
We’re running Woltlab on a 8 core/32GB virtual machine, but I believe that there is a bit of overprovisioning at play. Currently, the installation is on a bare metal server, but I’m not really keen of keeping things that way.
I think I’ve got a site with similar traffic on an 8gb droplet that I think used to serve about 1M pageviews/month
Yes, but there’s a switch for discourse-setup that will do it on install. (I think it’s --two-container, but I mostly look at the script if I’m running it by hand).
It’s nice because you can build a container while the old one runs. You do have to pay attention to when it is that you need to upgrade/rebuild the data container.