I'm trying to convince my CEO to use the free version of Discourse

I’d like to install the open-source forum on my own server of the organisation.

I’d need to convince the CEO to allocate docker resources for it.

Here are some questions so I could easily convince him:

  1. What Amazon services are requried to install the open-source in it?
  2. Does the openSource version have an option to let only employees (by the postfix of the email.com + confirmation) to register? (to keep it private)
  3. Is it possible to add its own theme and logo?
  4. How can I make sure that installing the free open source version wouldn’t expose any sensitive data to any 3rd party?

Thanks

Here is much more knowledge what I can offer ever, but…

  1. None. CDN or external fire storage like S3 are optional
  2. Yes. You can even limit registration per domains. Or just allow invites.
  3. Of course, this is not Mastodon :stuck_out_tongue_winking_eye:
  4. Discourse is open source so you can check it out or just trust everyone else who aren’t connected to CDCK. But Disourse doesn’t need such 3rd party services that can do such things. But if you use 3rd party things you must be sure those aren’ doing funny things.
7 Likes

Thank you so much!

Could you just clarify the CDN or external fire storage?

Does the forum installation require a running machine or just a storage device, like S3 by Amazon?

Could I theoretically install it on one of the employee’s laptops, and he wouldn’t need to worry about this, as long as he doesn’t turn off the laptop? Should it be installed on a Raspberry or a laptop, and keep running all the time?

I’ve read that a “domain” is needed. So does it add some costs, or is it included within a local network?

I’ve asked GPT to make some comparison between AWS and DigitalOcean to show the costs.

How realistic is this estimation, in your opinion?

GPT output:

Let’s estimate the costs for running a Discourse forum for 100 users for one year on both DigitalOcean and AWS EC2.

Assumptions:

  1. Server Type: We’ll assume a mid-tier server is sufficient for 100 users. For DigitalOcean, this would be their $20/month Droplet. For AWS, we’ll consider a t3.medium EC2 instance.
  2. Storage: Discourse recommends at least 10GB of space. We’ll assume 20GB to account for growth and backups.
  3. Data Transfer: We’ll estimate 500GB/month, considering both inbound and outbound traffic.
  4. Backup: We’ll assume weekly backups stored for a month, leading to 4 backups stored at any given time.
  5. Database: We’ll use the built-in PostgreSQL for Discourse, so no additional costs here.

Cost Estimation:

Cost Component DigitalOcean AWS EC2
Server $20 x 12 = $240 t3.medium On-Demand price is approximately $0.0416 per hour. So, $0.0416 x 24 x 30 x 12 = $359.55
Storage Included in Droplet EBS General Purpose SSD (gp2) volumes are $0.10 per GB-month. So, 20GB x $0.10 x 12 = $24
Data Transfer First 1TB/month is free, then $0.01 per GB. Assuming 500GB is used, it’s free. First 1GB is free, then $0.09 per GB for the next 9.999TB/month. So, 500GB x $0.09 = $45/month. For a year, $45 x 12 = $540
Backup $4/month (20% of Droplet price) x 12 = $48 Snapshots cost $0.05 per GB-month. Assuming 4 backups of 20GB each month: 80GB x $0.05 = $4/month. For a year, $4 x 12 = $48
Total $288/year $971.55/year

Notes:

  • AWS has multiple pricing models, including Reserved Instances and Savings Plans, which can significantly reduce costs. The above estimation is based on On-Demand pricing, which is the most expensive option.
  • This is a basic estimation and doesn’t account for potential additional services or unforeseen costs. It’s always a good idea to monitor usage and adjust resources as needed.
  • Prices can vary based on regions and specific configurations. Always refer to the official pricing documentation of the respective platforms for the most accurate and up-to-date information.

In conclusion, based on the above estimation, DigitalOcean appears to be more cost-effective for hosting a Discourse forum for 100 users for one year. However, AWS offers a broader range of services and scalability options, which might be beneficial for more complex or growing projects.

2 Likes

I ran a Discourse install on AWS a little while ago, for about 2 months before moving to a personal server. It didn’t cost nearly that much, it was more like $50 a month…?

(take that very lightly because i dont remember very much)

2 Likes

Both are optional. But

  • you may use CDN to get a bit faster loading times for global audience (in theory anyway; when and where to use CDN is wider question)
  • you can use external ones for uploads, like S3, DigitalOcean Space etc. to save local space, because those have tendency to be a bit cheaper

Do what you do, but don’t install Discourse itself on Amazon unless you know very well what you are doing.

How big VPS for Discourse you need is really hard question. It depends - how many calls/visits/users it must handle.

And money is another relative question. For business such costs are different thing than if one is operating on hobby level. And it depends how important a forun is - is 98% uptime enough or is 99,9% needed (and needed is different thing than wanted; wanted things are quite often really expensive).

1 Like

Did you prompt ChatGPT with the real pricing sheets before you prepared this?

If not, this may look convincing but almost certainly mostly made up and out of date.

A brief look at DO pricing and I must say it looks off and overly simplified.

Be very careful using ChatGPT for business decision making!!

4 Likes

Thanks for the good explanation!

Frankly, I’m still lost.

It seems that Discourse requires 1-2GB RAM and 10GB of storage volume.

I could easily allocate it with any laptop, considering that only users of the same country would use it for the meantime.

I think that the company has a few servers of its own (instead of AWS S3 or such).

If it’s installed of these servers, that would be great. But just for testing it, I guess that it would be better try it first on a laptop. Do I still need to pay for a domain?

  • you need a domain to get it to work with other users - Discourse is not designed to work without a domain.
  • running an internet server on your local home internet is not recommended and may be against the ToS of your internet provider
  • you want to keep your poor laptop running 24/7?!
  • it takes very little time to set it up on a cloud VPS
  • you can make the community private initially to block unauthorised users.
2 Likes

You can easily run Discourse on a $5/month Linode server (other companies have similar plans, but I’m familiar with Linode). Start with something like that and only look at bigger options when you really need it.

(Of course that’s not pricing in time to run the server. It doesn’t take a lot once it’s set up, but if you don’t have experience managing Linux servers then it may be better to choose a managed hosting option. Discourse themselves offer hosting, but so do other companies.)

5 Likes

You’re right! Thanks for the answers.

lol, poor laptop.

If I only try to install it on the laptop, and let it work for 2-4 hours, it wouldn’t be any unusual, as from the perspective of the internet provider, isn’t it? (Same way the electricity company can’t tell what you operate with the electricity you consume, but only the amount of it that you consume)

Or is it easily tracked for some other mechanism?

Cloud VPS is what we discussed earlier as S3, DigitalOcean, or even Lindoe?

My plan now is to install it locally on a laptop, show the infrastructure guy of the company how easily I installed it, and then ask him to install it on the companies’ severs which he’s responsible for.

Btw, thanks for the input about ChatGPT. Of course, it’s not reliable per sa, which is why I shared it to make sure that the pricing falls in place - although actual investments would be more specifically revaluated outside of ChatGPT.

If you’re just using this as a demo, maybe try following one of the development install guides listed here: https://meta.discourse.org/docs?tags=dev-install

Point him to this guide for the hardware/software requirements: https://github.com/discourse/discourse/blob/main/docs/INSTALL.md.

This guide gives instructions for creating a installing a production Discourse site: https://github.com/discourse/discourse/blob/main/docs/INSTALL-cloud.md.

1 Like

I’ve looked here:

Is it what I need to install in Windows for testing it locally?

That topic links to the same topics as are found here: https://meta.discourse.org/docs?tags=dev-install

For Windows, maybe start by trying the Docker guide: Install Discourse for development using Docker. I think it runs slower than if you follow Install Discourse on Windows 10 for development, but the Docker install method might be easier, especially on Windows.

Another thing to consider is to just create a free trial using Discourse’s hosting: Discourse pricing | Discourse - Civilized Discussion. You’ll have the site up and running in 10 - 20 minutes.

4 Likes

I’m trying to install it through Docker, but it doesn’t work.

I got stuck on this error, how do I fix it?

3.0" has incorrect peer dependency "@uppy/core@^3.2.1".
[4/4] Building fresh packages...
$ ../run-patch-package
patch-package 8.0.0
Applying patches...
@ember/jquery@2.0.0 ✔
babel-plugin-debug-macros@0.3.4 ✔
content-tag@1.1.1 ✔
ember-source@3.28.12 ✔
ember-this-fallback@0.3.1 (1 initial) ✔
ember-this-fallback@0.3.1 (2 themes) ✔
virtual-dom@2.1.1 ✔
Done in 101.54s.
Migrating database...
rake aborted!
Discourse::Utils::CommandError: /src/lib/discourse.rb:138:in `exec': node:internal/modules/cjs/loader:1080
  throw err;
  ^

Error: Cannot find module 'esbuild'
Require stack:
- /src/app/assets/javascripts/theme-transpiler/build.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
    at Module._load (node:internal/modules/cjs/loader:922:27)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:121:18)
    at Object.<anonymous> (/src/app/assets/javascripts/theme-transpiler/build.js:3:17)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/src/app/assets/javascripts/theme-transpiler/build.js' ]
}

Node.js v18.17.1
/src/lib/discourse.rb:172:in `execute_command'
/src/lib/discourse.rb:138:in `exec'
/src/lib/discourse.rb:34:in `execute_command'
/src/lib/discourse_js_processor.rb:119:in `build_theme_transpiler'
/src/lib/tasks/assets.rake:313:in `block in <main>'
Tasks: TOP => db:migrate => assets:precompile:theme_transpiler
(See full trace by running task with --trace)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.