Git-based discussion system?

So, I have seen so many situations where democratic discussions are desired, be it local / national politics or worker coop. However, we always get stuck with the fact there is no good discussion system, nothing without pollution from Google, Facebook, etc (or in Japan, this thing called “Line”, just as bad as any)

Mailing lists are cheap and abundant but there are severe limitations and NNTP (newsgroups) seem dead, almost.

Then again this Discourse - it is so damn expensive to host and I have been wondering why - it seems this beast is so complicated, requiring the use of docker to install all components.

I know that most of our discussions are text based and this should not be this complicated!!

So I wonder, if we can just write an extremely lightweight discussion system in which all discussions are stored in Git and all pages are “statically generated” with a compiler that runs each time a new git message comes in. Then all we need is Apache web server hosting static pages and accepting text uploads?

Maybe I should try Scheme or Haskell to write something :smile:

1 Like

Flarum is cheap to host, I’ve written an Ansible role to automatically install it on Webarchitects shared hosting servers to address exactly the concerns you have:

However I haven’t yet found a group who wants Webarchitects to host a Flarum for for them… :roll_eyes:

3 Likes

Thank you @chris it’s good to know - I would still like to contend it can be even simpler :grin: I might give it a try ( but argh. I want to finish setting up BBB on my sever , too!!)

Perhaps Beaker Browser is nearly ready? There are simple templates in there for p2p discussion… has anyone tried them? https://beaker.dev/docs/templates/

@chris

Is Flarum better (for whatever version of better you choose to outlay) that Discourse for doing a forum?

The only thing Flarum is better at, as far as I’m aware, is server resource usage and as a result cost, Discourse needs a VM with 3GB of RAM and quite a lot of disk space.

Flarum needs a MySQL database and PHP so can be hosted on shared web servers.

1 Like

Git is kinda scary for people, even developers, so sometimes you miss out on voices if you’re doing your discussion with this potential barrier to entry. That said, I’ve seen:

Some other low-tech approaches:

1 Like

That’s really not a fair characterisation of Discourse.

The Discourse team have spent a huge amount of time to make it easy to deploy and maintain. Docker helps with that (permitting almost interruption free one-button online upgrades and simple clean rebuilds to get you back up and running quickly)

If you have basic Linux skills it takes about 30 minutes to an hour to install and get up and running.

The instructions are here: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub

I run 3 sites and each uses a very cheap VPS. I do all the SA myself. My coop runs several more.

In 4 years of running Discourse the only downtime I’ve had has been due to my error or that of my VPS hoster and even then we are talking a total of minutes. It’s ROCK solid.

This is not correct. You can get away with 1GB but I would recommend 2GB. You will need at least 20GB but this really depends on what kind of content you intend to post, number of users etc etc

If you can’t afford the cost of Discourse official hosting (yes it is fairly pricey but someone’s got to pay all the devs for all that work) and don’t have the technical skills to install and run an instance yourself (it’s not that hard though and you can learn!) then there are other options at lower price points. I can introduce you to three options depending on your budget.

1 Like

When it came to setting up my first Discourse instance, I couldn’t agree more with @merefield. However, when I received 2 - 3 more requests from our members who wanted their own Discourse instance and I realized that dozens more might want the same, that’s when I started feeling a lot more like @yasu

I think the difficulty with this kind of software is:

  • Managing spam
  • Integration with email

Additional criticism I have of Discourse include:

  • So complicated to administer! I am not talking about installation, I mean trying to understand all the permissions and options. This goes hand in hand with “managing spam” above - it’s a real balancing act between having all the best features and presenting a easy to use admin screen.
  • Hard to understand email notifications - I spent an hour with a group of smart people trying to figure out how to configure out private topic to send us an emal everytime someone posts a new topic or a comment. Discourse does a great job of keeping email to a minimum, but it’s hard to understand

I’l interested in Flarum - thanks for the post about it.

1 Like

There’s an excellent community at https://meta.discourse.org to help with any support questions.

Personally do not find the email notifications that complicated, but it’s definitely true that with additional capability and flexibility often comes an increase in complexity.

I’m puzzled by the spam problems you have had @jamie, this site has about one spam post every two months, 13 spam posts in two years.

I’m sure you have some horror stories of MediaWiki or phpBB sites being utterly destroyed by spam bots in the past, I sure do…

Discourse really doesn’t appear to have this problem, however I was expecting it to be really bad, based on past experience… so we have configured the Discourse servers we host to sit behind an anti-spam gateway server:

dig mx community.coops.tech +short
10 mx.webarch.net.

Perhaps this is taking a load off Discourse, that server is running SpamAssassin.

For outgoing and incoming email we are doing this on the VM hosting Discourse itself, see these (old and in need of serious update) Ansible tasks:

And this works fine once configured.

For small activist or community non-profit groups I don’t think Discourse is a practical option, this is why I spent a while writing a Flarum Ansible role, I just need an organisation to test it with now :wink: .

1 Like

I see that my message was totally confusing - sorry for the poor communications.

I meant to say the challenge with web-based forum software is managing spam and email integration and both of those things Discourse does amazingly well.

Then, the two problems I have with discourse (in addition to the amount of resources it consumes and the complexity of requiring a dedicated vm for the docker install) are how complicated the administration screen is and how difficult it is to fully take advantage of it’s spam fighting power.

1 Like

So I have replies along 2 lines:

Discourse

I’ve installed this before and it was pretty easy. Most of the pain was sorting out external email and that will apply to anything. Yes, some of the options can get complex but the anti-spam measures are good. Like most things in life, a good discussion site is more complex than it looks and in my (limited!) experience Discourse keeps a good balance between keeping key stuff in core and letting people push the rest into optional extensions.

Storing stuff in git

So this is actually something we have been looking into, but not for discussion, for data. For one of our projects we store the data in a git repo - register/lists at main · org-id/register · GitHub - so it’s really open. We then have a nice browsable front end at http://org-id.guide/

But the problem of course is, as already said, requiring Git / GitHub use will be a massive barrier to some people. Depending on what the target audience is, this will be more or less of a problem. It’s a problem for people who want to edit Org-Id. To tackle that, we are working up some ideas about ways we can present nice UI’s to non-tech people that then helps them save the data.

I’ve actually seen several people store data in Git, and so we are working up a general purpose tool to help with this use case. Er, it’s so new there isn’t any documentation yet and we haven’t blogged about it, but that will all come soon. GitHub - DataTig/DataTig

In the mean time, happy to chat to anyone interested in this idea, and let me know if people see other store-data-in-git projects.

Also not discussion, but along the same lines I have previously seen a static site builder service that then gave you a Web UI to edit content and turned it into GitHub PR’s. If people are interested I can go dig out the link.

2 Likes

Sounds a bit like ikiwiki but you might want to put a nicer user-interface on it.

1 Like

This “low-tech” approach is what software.coop does, but the members are IT workers so IRC is OK for us when it probably won’t be for most co-ops.

That reads rather like a veiled insult.

So you’re not worried about the user-tracking which could enable executive capture of a co-op?

1 Like

Really?! To whom?! Hilarious! :upside_down_face:

It means, in general, if at a minimum you know how to change directory and return the file contents of the current one you will likely have no problem achieving it within the estimated time. :+1:

If your Linux knowledge exceeds that you will likely find it very easy.

It’s true the forum has a system that gathers very basic metrics on user behaviour and releases additional features to them as they demonstrate through positive engagement that they can be trusted.

It is there to help moderators and admins combat misuse etc. not abuse users rights. How better to deal with onboarding of unknown randoms from across the internet?

Moreover, the software is open source so you can read every line of code if you are concerned.

Bottom line: if you don’t trust the organisation running a site just don’t engage; especially if your unique pattern of likes is going to cause you to lose sleep …

Sorry I have been so busy recently.

This may not be directly relevant to the last message but I wanted to clarify that although yes, I was thinking of using something like Git, I was not thinking that the users will start to directly write to it - although this might be great for testing and those who only have command-line access (I have a blind friend - he may like this style better :-))

I am sure there are so many javascript-powered web interface programs we can use to allow writing messages from the web browsers. I was imagining all that we need to is to convert JSON data coming from the front-end to structured data in Git.

Or it might even be the case that all we need is a git server and all the busy work other than git can be done by the web browser.

Yet another possibility might be to have a client that has the cloned git repo in itself for superior text search capabilities and archiving and off-line capabilities!

I found this the other day, which looks quite interesting: GitHub - edemaine/coauthor: Coauthor supercollaboration/discussion forum

Coauthor is a tool for group collaboration, discussion, keeping track of notes/results of meetings, etc. Its primary goal is to ease multiauthor collaboration on unsolved problems in theoretical computer science, so e.g. you’ll find LaTeX math support; hopefully it will have applications in other fields too…”

2 Likes

That looks interesting, is there any demo site?

I’m thinking, if we were to develop a ultra light weight discussion tool suggested here, It should be designed from the ground up to be the opposite of capitalist tendencies - that “data”, in this case a Git repo of all messages should be owned by every participant.

All you need to do at anytime is to clone the repo and by virtue of beling lightweigt and extremely simple to setup, anyone should be able to host the discussion site.

In an extreme case where someone disagrees with some editorial policy and is unable to change the group, that person should be able to “fork” the discussion site as well!

I was not thinking that the users will start to directly write to it - although this might be great for testing and those who only have command-line access

There is no reason you can’t have multiple different UI’s to work with the same data for the benefit of users with different needs like your friend - that’s true of any discussion site. Discourse has an API, we could do a CLI tool :slight_smile:

I am sure there are so many javascript-powered web interface programs we can use to allow writing messages from the web browsers.

The problem is how do you do access control to the repository, whether it is hosted. There will need to be some kind of server access component. (And you can’t just have open access, if there is that and it gets popular it will get spammed.)

I was imagining all that we need to is to convert JSON data coming from the front-end to structured data in Git.

JSON is structured data :slight_smile: That’s what we store our data as - register/lists/gb/gb-coh.json at main · org-id/register · GitHub

Yet another possibility might be to have a client that has the cloned git repo in itself for superior text search capabilities and archiving and off-line capabilities!

True, and I’ve seen several issue trackers that work on that basis. But then your back to the tech barrier issue again.

It’s true the forum has a system that gathers very basic metrics on user behaviour

That also provides a very nice user feature where it keeps track of what I’ve read and shows me new stuff. “if you don’t trust the organisation running a site” - I would hope that us co-ops of all people could work on this trust problem :slight_smile:

There are a few key issues I think that would be a challenge to crack with a git based system

  • Notifications - how does someone get notified if someone replies to one of there posts?
  • No access levels like Discourse has and no post-moderation - once someone has access they can change everything. And if you rollback spam/abuse, it will still be in git history. In Org-id we pre-moderate all submissions using GitHub pull requests but you probably don’t want that for a discussion site!
  • No private chat messages - a feature we have used on this board

I think to take this project forwards, the first thing is to decide what level of tech knowledge it will require from it’s average engaged user (not a sys-admin). Because what is chosen there will go on to affect a lot of the system and design choices.

Honestly, I kinda feel that if the answer is “no special tech knowledge should be required” I suspect that by the time various components have been added to provide the features people expect your going to be back to something that’s just as complex to install as Discourse anyway :slight_smile: [ the original problem statement ]

ps. This other statement about “forking” discussion sites - I’d think carefully about how that would be perceived by users before pushing that too heavily. People feel a personal ownership of things they write on discussion sites in a way they don’t about code they push. I know that technically once something is on the public internet, it can be copied, but that’s not how a lot of non technical people see things and you will get some odd reactions from people around that.

TL;DR I think I’m basically saying if you want this to be accessible to non-tech people, use Discourse or an alternative like Flarnum and if installation is still a problem lets work on that.

1 Like