# How can I tell if a particular distribution of the Discourse client is free software?

**URL:** https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374
**Category:** Support
**Created:** [November 15, 2024, 5:33pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374 "2024-11-15T17:33:50Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![JacobK1](https://avatars.discourse-cdn.com/v4/letter/j/7feea3/32.png) [@JacobK1](https://meta.discourse.org/u/JacobK1)
#### Post date: [November 15, 2024, 5:33pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/1 "2024-11-15T17:33:50Z")

</div>

For people who want to avoid running nonfree software, how can we tell if the software that a website gives us for accessing a forum powered by Discourse is free software?

Without the JavaScript client software, the forum appears to be read-only, so I want to run the JavaScript on the website, but I see no indication here on Discourse Meta or on for example the Purism Forums (also powered by Discourse), that the client software is free software. Some of the script files have links to source maps, but the source maps I checked did not have any license information.

I found an older topic that mentions `“There is only one version of Discourse – the awesome open source version.”`, but then I also found [a topic](https://meta.discourse.org/t/does-discourses-contributor-agreement-provide-an-exit-door-from-open-source/1399) that suggests that suggests that the CLA may allow for proprietary versions, but it has no examples of proprietary versions.

One Discourse instance that does show licensing information is the FSF members forum (only accessible to members I think), which links to the GitHub Discourse repo, [an FSF git repo](https://vcs.fsf.org/?p=discourse_docker.git;a=summary), and the GitHub repo for an extension, but this information is only shown after the client software is already running, so it’s not very useful for deciding whether to run the program in the first place.

Is there a way for me to figure out whether the client software served by a Discourse instance is free software without actually running that software? Or even if I do have to run the software, how would I get the full licensed source code of the client software for a Discourse instance? Surely the original discourse GitHub repo isn’t always sufficient, since people may have modified the software before redistributing it?

Alternatively, is there a different Discourse app that doesn’t download software from the servers it connects to?

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [November 15, 2024, 5:43pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/2 "2024-11-15T17:43:40Z")

</div>

Discourse is open source, so using it is free. Hosting, by own or using CDCK, will cost.

Search `is discourse free` gave this:

> [@Is Discourse free or not?](https://meta.discourse.org/t/is-discourse-free-or-not/51354):
>
> Hi everyone, I like how Discourse looks and would like it on my new, tiny personal site if possible. The main homepage for Discourse boldly says “Free” but every link I subsequently follow (like [this](http://blog.discourse.org/2014/04/install-discourse-in-under-30-minutes/) or [this](https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md)) talks about $10/month on a Digital Ocean server. Is it free or not? Am I missing something here? Thanks if you can help!

> [@JacobK1](#):
>
> Surely the original discourse GitHub repo isn’t always sufficient, since people may have modified the software before redistributing it?

Sure it is. And _de facto_ the only source to use.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [November 15, 2024, 6:03pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/3 "2024-11-15T18:03:33Z")

</div>

My guess is you can’t.

Some installs will be hosted and have proprietary bits in the hosting stack.

Self hosters would be foolish not to use the [standard install](https://meta.discourse.org/t/142537?silent=true) because that’s the cheapest to support.

One thing you might find is some sites might use proprietary/private plugins which the platform allows you to install at the admins discretion.

---

<div class="post-metadata">

### Author: ![JacobK1](https://avatars.discourse-cdn.com/v4/letter/j/7feea3/32.png) [@JacobK1](https://meta.discourse.org/u/JacobK1)
#### Post date: [November 15, 2024, 6:04pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/4 "2024-11-15T18:04:49Z")

</div>

> [@Jagster](#):
>
> Sure it is. And _de facto_ the only source to use.

I am confused by this statement. Are you saying that people who host Discourse do not modify the software before redistributing it?

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [November 15, 2024, 6:11pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/5 "2024-11-15T18:11:02Z")

</div>

People are known here the team or as a company CDCK. Of course they do, every day. Itnis under constant development. And yet that is what we are using.

This may open that question:

> [@Is Discourse always in "beta"?](https://meta.discourse.org/t/is-discourse-always-in-beta/198215):
>
> I noticed that every now and then my Discourse site send me an email telling that a new version is available to install, but every time the version is “x.y.z.beta something”, so I’d like to know: is Discourse always some “beta” version? Is it good to install in a production environment (i.e. to serve hundreds, maybe thowsands people)? Or does this concerns only free and not “cloud” versions?

---

<div class="post-metadata">

### Author: ![JacobK1](https://avatars.discourse-cdn.com/v4/letter/j/7feea3/32.png) [@JacobK1](https://meta.discourse.org/u/JacobK1)
#### Post date: [November 15, 2024, 6:28pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/6 "2024-11-15T18:28:44Z")

</div>

Your mention of plugins made me think if there’s a way to check the version information, and I found [this topic](https://meta.discourse.org/t/finding-what-version-of-discourse-youre-using/104326) that describes how to get the version information.

So I can see, for example, that this instance is using commit 276bc8a565389ea1a145af08ec8e64c1a5bea990, the FSF member forum is using commit 7ecaf6295daf8759aa98d00e7035c4dc0f853303, the Purism forum is using 999aaa35a79ae7c586a91de1f6c1f7b3c8092bd2, and the Exercism forum is using commit 1bd9ca11e777f880462ae64c6795ef7de28a8cd2. All of those are valid commits in the official repo, so I guess the instances have not modified Discourse itself (though they may have added plugins).

I think that leaves plugins and themes. It looks like maybe you can see the name of the plugins by looking for “data-discourse-entrypoint” attributes in plugin scripts, but I don’t see a version identifier. Do you know of any way to get the list of installed plugins?

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [November 15, 2024, 6:31pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/7 "2024-11-15T18:31:32Z")

</div>

> [@JacobK1](#):
>
> Do you know of any way to get the list of installed plugins?

You could look at the javascript packages to get a clue, but any amount of plugins might be installed in the back end away from prying eyes.

---

<div class="post-metadata">

### Author: ![JacobK1](https://avatars.discourse-cdn.com/v4/letter/j/7feea3/32.png) [@JacobK1](https://meta.discourse.org/u/JacobK1)
#### Post date: [November 15, 2024, 6:40pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/8 "2024-11-15T18:40:23Z")

</div>

What I meant by “modify the software before redistributing it” was that people who redistribute the software on public websites, like forums.puri.sm for example, could modify their version without submitting changes to the main git repo. If they made an agreement with Discourse, they could release those changes as nonfree software, separately from the main Discourse git repo.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [November 15, 2024, 6:51pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/9 "2024-11-15T18:51:17Z")

</div>

The velocity of changes to the main repo is so high it would be expensive to keep a fork viable.

That is exactly why plugins are a popular solution for extensions.

---

<div class="post-metadata">

### Author: ![Jagster](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jagster/32/192154_2.png) [@Jagster](https://meta.discourse.org/u/Jagster)
#### Post date: [November 15, 2024, 7:01pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/10 "2024-11-15T19:01:19Z")

</div>

> [@JacobK1](#):
>
> If they made an agreement with Discourse

Big if and I don’t believe that would happen — and what agreement, Discourse is open source. But CDCK better that knows. I reckon out there is some forks, but are those in production… I doubt that. But as Robert said, why when things can be done with components and plugins.

---

<div class="post-metadata">

### Author: ![JacobK1](https://avatars.discourse-cdn.com/v4/letter/j/7feea3/32.png) [@JacobK1](https://meta.discourse.org/u/JacobK1)
#### Post date: [November 15, 2024, 7:45pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/11 "2024-11-15T19:45:54Z")

</div>

So I guess the only way to check plugins might be to:

- Set up my own Discourse instance
- Try to install the same plugins as any remote instances I want to interact with
- Check to see if the plugin JavaScript is the same on my instance vs their instance

I guess I could also try to avoid running the plugin software entirely, and only use the scripts that are part of Discourse itself.

Of course, I don’t have a way to check their backend, but I only care about the client software when I’m connecting to someone else’s server.

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [November 15, 2024, 7:48pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/12 "2024-11-15T19:48:19Z")

</div>

Maybe you are also interested in [safe mode](https://meta.discourse.org/t/53504?silent=true), which disables JavaScript customizations.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [November 15, 2024, 7:56pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/13 "2024-11-15T19:56:51Z")

</div>

No. You cannot see what is happening on the server. There may be many changes that are not exposed on the public API or very hard to decipher.

A layman is not privy to what is going on in the server.

---

<div class="post-metadata">

### Author: ![JacobK1](https://avatars.discourse-cdn.com/v4/letter/j/7feea3/32.png) [@JacobK1](https://meta.discourse.org/u/JacobK1)
#### Post date: [November 15, 2024, 8:05pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/14 "2024-11-15T20:05:15Z")

</div>

I think this, combined with the version information is enough to use arbitrary Discourse distributions while avoiding running nonfree software. One can check that the commit is in the official GitHub repo and then either make sure [safe mode](https://meta.discourse.org/t/53504?silent=true) is always enabled or only “whitelist” (in a tool like LibreJS) scripts that appear when using [safe mode](https://meta.discourse.org/t/53504?silent=true).

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [November 15, 2024, 8:10pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/15 "2024-11-15T20:10:54Z")

</div>

No. It is not. It only disables client side changes.

---

<div class="post-metadata">

### Author: ![JacobK1](https://avatars.discourse-cdn.com/v4/letter/j/7feea3/32.png) [@JacobK1](https://meta.discourse.org/u/JacobK1)
#### Post date: [November 15, 2024, 8:13pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/16 "2024-11-15T20:13:04Z")

</div>

The client-side changes are all I care about because I won’t run the server code on my computer.

---

<div class="post-metadata">

### Author: ![JacobK1](https://avatars.discourse-cdn.com/v4/letter/j/7feea3/32.png) [@JacobK1](https://meta.discourse.org/u/JacobK1)
#### Post date: [November 15, 2024, 8:15pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/17 "2024-11-15T20:15:04Z")

</div>

If I was going to run a Discourse server, then I would choose which plugins to install and just not install plugins that are missing a license.

When I’m connecting to someone else’s server I’m expected to run the software they give me, which might not have a license in a easy-to-find place.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [November 15, 2024, 8:15pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/18 "2024-11-15T20:15:54Z")

</div>

I think most installs will have predictable sets of plugins. But not all. You will never know unless you become a privileged admin of the site.

---

<div class="post-metadata">

### Author: ![JacobK1](https://avatars.discourse-cdn.com/v4/letter/j/7feea3/32.png) [@JacobK1](https://meta.discourse.org/u/JacobK1)
#### Post date: [November 15, 2024, 8:25pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/19 "2024-11-15T20:25:26Z")

</div>

To make sure I understand correctly: if a change is _not_ client-side, then that means it will not affect the code that a normal user (i.e. not an admin) of the Discourse distribution will run. Is that correct?

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [November 15, 2024, 8:26pm UTC](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374/20 "2024-11-15T20:26:03Z")

</div>

_run_ but not be subject to in the processing of any information they may interact with.

a server could, in the background, send all your details to Facebook and get paid 😉

[Next page](https://meta.discourse.org/t/how-can-i-tell-if-a-particular-distribution-of-the-discourse-client-is-free-software/336374.md?page=2)
