Gosora Forum Software: Supremely Fast and Feature Packed

Do you have a demo for Gosora? I would like to try it out before installing it live. I'm going to start a new forum but still brainstorming on what forum software I should choose.

https://gosora-project.com/forums/ should be it.

That's not a demo, that's the oficial forum but I have checked it out and it looks good. I was looking more into seeing the admin panel and such.

Oops! You're right, I misinterpreted.
 
Will it auto update or provide an update option for each new release?
 
Do you have a demo for Gosora? I would like to try it out before installing it live. I'm going to start a new forum but still brainstorming on what forum software I should choose.
I don't have a demo, although I do have a production site.
If you want to try it, then you could setup a test installation on your computer.

Normally, you'd have to use Git, as I'm currently using that so that you can update the software via the command-line, I will probably switch to something friendlier at some point, but Git is what programmers use all the time to collaborate, so it's pretty common and bog standard.

Every developer these days should have it installed as it's practically an industry standard at this point. If you're just setting up a test install, you can just reinstall it on the spot whenever, so you can probably download the ZIP from Github and unpack it.

You don't even really need to install Go, just download the ZIP, unpack it, and then, update the environment variables so that they point at the right folders. Updating Go is then literally just deleting the folder and slapping a new version of the thing in.

If you're using Windows, then some portable distribution which includes MySQL (MariaDB would suffice, they're not quite the same thing, but it doesn't really matter here) might work like Wnmp. The credentials there I believe are root for the username and password for the password.

There's plenty more information in README.md, literally go to the Github repository and scroll past the list of files, you can't miss it.
I'm probably going to be doing a bit of work on the control panel, so you'll probably wind up seeing some changes there.
 
Can I host Gosora in a shared hosting plan?
Technically, you can. Technically.

It's not impossible, however I would strongly advise against it, as it'll just complicate things. If you really want to do it, then Rick Ace managed to do it before. You will likely need a shared host with SSH (the decent ones tend to have that) to play around with that.

If you want my advice, then just use a VPS, it's much easier than people think it is, to be perfectly honest. I'll see if I can add support for Docker at some point, which may help with a few shared hosts and some other places.

Asides from the setup, 90% of managing a VPS is popping in once a week or two, running a couple of commands to update everything, and mostly forgetting the thing exists. People seem to think they're monsters which need constant attention.

apt update
apt upgrade
For Ubuntu, depends on the flavour of Linux. Gosora has it's own update system separate than that however and for the database, it depends on which one it is.
 
Can I host Gosora in a shared hosting plan?
Technically, you can. Technically.

It's not impossible, however I would strongly advise against it, as it'll just complicate things. If you really want to do it, then Rick Ace managed to do it before. You will likely need a shared host with SSH (the decent ones tend to have that) to play around with that.

If you want my advice, then just use a VPS, it's much easier than people think it is, to be perfectly honest. I'll see if I can add support for Docker at some point, which may help with a few shared hosts and some other places.

Asides from the setup, 90% of managing a VPS is popping in once a week or two, running a couple of commands to update everything, and mostly forgetting the thing exists. People seem to think they're monsters which need constant attention.

apt update
apt upgrade
For Ubuntu, depends on the flavour of Linux. Gosora has it's own update system separate than that however and for the database, it depends on which one it is.

Any cheap VPS you know of?
 
Anything new lately? I actually follow this thread so keep me updated. lol
 
Any cheap VPS you know of?
A friend of mine said good things about OVH's dedicated servers, they also have basic VPS' and other offerings.

DigitalOcean is a premium host which offers VPS' and is fairly popular, although that friend of mine didn't really like it, because the performance of it fluctuated depenings on how much demand the host as a whole was receiving, although to be fair, their site is huge.

Shared hosts are far more notorious for overselling aka stuffing a zillion sites onto a single server though. It's almost pitiful how slow a simple forum (MyBB) can run on some shared hosts.
Anything new lately? I actually follow this thread so keep me updated. lol
I'm mainly refactoring things and cleaning up code.
I've also made some small improvements to the level UI and what-not.

I'll see if I can throw something more exciting out to entertain you with lol
 
Thank you! It looks like something I would want to use so I wouldn't mind making a wordpress plugin, plugins for the forum or themes for the forum.
 
forum_list.webp
Nox Theme List Forum List.

You can use that instead of the topic list, if you're more of a traditionalist or your site is really, really active. It hasn't gotten as much love as it should have, but we'll see if we can't improve it a little.

I'm also experimenting with an elapsed time thing, so that I can see when things are going really, really wrong in production. It's only shown to administrators as we don't want to slow down the regular users with crud they don't care about.

I'm not sure if it's Chrome or Windows being Windows, but it's reporting some pretty terrible times. I will have to investigate that.

I also added a currently experimental flag for disabling fsnotify. Fsnotify is the library I use for reloading CSS / JS / etc. files automatically without having to restart Gosora every-time you want to change something.

In general, you probably want to leave it on when developing themes, etc. on your home computer, and then, turn it off in production as you probably won't be doing updates that frequently and more speed is never bad, right?

Thank you! It looks like something I would want to use so I wouldn't mind making a wordpress plugin, plugins for the forum or themes for the forum.
You're welcome to do so 🙂

I should note that I'm probably going to be making some big changes to the plugin and theme systems soon though lol
 
I investigated the number, and there are a few reasons why it's probably high.

1) Chrome / high resource usage. It's like running up a mountain with weights strapped to you.

2) I'm logged in as an administrator. Gosora is around 50% slower for administrators than for regular users. In practice, this doesn't really matter, because it's still fast and you probably won't have a million administrators running around (I hope!).

3) Requests seem to be dragged out for longer than they can be. The runtime seems to be better at handling huge numbers of requests than a single one-off one.

4) MySQL. I probably should move it onto a SSD or something, tweak the settings, and probably use named pipes on my development machine instead of TCP/IP. This is too much hassle though, so meh.

5) I don't think Windows' timers are very precise. There was an issue on Github for Go about this, although I don't know if they fixed it. The faster the application, the more likely you are to see discrepancies.

6) Windows is far slower than Linux in general for websites, unless you're using C#, Win10 Pro and perform some arcane ceremonies.

However, I did fix some problems while investigating the issue, for instance, the topic list cache now no longer builds topic lists for groups with no users, that makes no sense and results in unnecessary queries.

I've also refactored a large portion of the template system, that was surprisingly tiring o.o

It seems that somewhere along the line, `text/template/parse` (a library which is part of Go's standard library, it takes a template and generates a parse tree based on it, and then, I take that tree and turn it into Go Code) started spewing out vast numbers of adjacent redundant text nodes and these were being turned into more w.Write() calls is necessary.

Also, this one in currently in-progress, but for single server setups without many topic updates, I might be able to skip running 2 to 16 queries per second by skipping rebuilding the topic list cache, if there haven't been any topic updates / permission changes / etc. in the last five seconds.

This might be fiddly though (touches a lot of places), so we'll have to see how well it works.
 
Last edited:
Deployed the latest version of Gosora to gosora-project.com, not much in the way of visual changes, although I think I did merge one large one which had just been sitting around for a few months.

The generated templates should also reuse their work more now rather than converting the exact same string to a byte slice or an integer to a string twenty times for each use. I have a feeling that people like numbers and stats (or maybe, that's just me), so here's a bench for this change:

Before:
Code:
BenchmarkTopicsGuestRouteParallelWithRouter-4              20000             62433 ns/op           22785 B/op        139 allocs/op

After:
Code:
BenchmarkTopicsGuestRouteParallelWithRouter-4              20000             56000 ns/op           22657 B/op        127 allocs/op

If you're familiar with Go Benchmarks, an op is essentially a page load, although this isn't through the load tester, so results may differ in practice.
Allocs is the number of memory allocations for that route, the fewer allocations we have, the less work there is for the garbage collector.

The random 20,000 is the number of times it called that route to get that average.
And I don't have a bench for this, but this change seems to have made the topic route significantly faster for administrators (and likely users too), particularly ones with lots of posts.

I have some ideas to further optimise templates including the fabled phrase / fragment coalescing to dramatically reduce the number of w.Write calls once more and maybe to get those allocations down.

I also made it easier for CDNs to cache attachments, upped the default cache capacity, flipped on the watchdog goroutine to clear low priority data out of the caches when they're at capacity and made Gosora build on Linux again (that somehow silently broke x.x).

For some reason, you currently need gcc to build the program, perhaps one of the dependencies uses a C Library, I'll have to investigate that and see if I can work around that. gcc is just a single command to install on Linux either way.

And don't be shy, make random posts on there, if you want.
Random questions are good too.
 
Last edited:
I get the following error when trying to create a topic:
An error has occurred
There was a security issue with your request.

I just wanted to bring the following to your attention, even though I know Nox is not complete.
https://imgur.com/a/6bgkPfG

Also, I'm on Edge. I know there aren't a lot of people who use Edge so I can test the software on Edge if you want.
 
Hang on, I just have to use that legendary phrase... Works on my machine lol

I see, it would seem that it's broken on the forum page, but not the topics list.
Well, I fixed the bug, thanks for the report.

I also noticed the broken forums page, incidentally while investigating the other bug you mentioned. That was supposed to be a fix for long topic names breaking onto multiple lines and it did "work on my machine", although it would seem not in production.

I'll see about fixing that next.
 
I wonder if you can add a system something like RPG system sir?
Level system,
Dice and Roll system,
Ranking System,
something that is unique from other forum softwares?
 
I wonder if you can add a system something like RPG system sir?
Level system,
Dice and Roll system,
Ranking System,
something that is unique from other forum softwares?
I do have a level system, but not a RPG level system.
It takes the number of points you've acquired and calculates your level based on it it.

Points:
Post = 1 point.
Big Post = 2 points.
Mega Posts = 4 points.
Topic = Add 1 to the point count for the post.

Requirements:
Big Post = 250 words.
Mega Post = 1000 words.

I'm probably going to have to make it easy to find, if you click on the Level x link in the Account Manager, then you can see the requirements for each level, although you might need to login and switch to the Nox Theme with the drop-down at the bottom of the page:
https://gosora-project.com/user/levels/

I'm probably going to make some changes to the UI, but here's a screenshot:

upload_2018-11-24_14-27-24.webp

I could add a ranking page and I did think of doing so, although it morphed into the level progress page. I'll see if I can't throw something together, it should be fairly easy.
And I dunno about dice rolls, how often would it be used? If it's just a bbcode which generates a random number, then it should be pretty easy to add.

Or a dice roll could be an action post like the "blah has closed this topic" posts you occasionally see. I dunno.
 
Wow I think the level system is attractive! 🙂


About the dicenroll I think it should be a premium plugin for your income sir.
Its a great idea for gaming forums, like fighting a Boss, all players will just post anything,
then in their post there is random dice that will tell how much damage to inflict to the boss.
Also in those roll they can also get damage from boss, I saw that system in terrarp.net before.

Sir how about a Rating system?
when they post a reply to your thread, they must choose a number of stars for your rating, just like
google play, they require you to choose your stars for rating before adding your message.

About the footer sir I think it will look great if you can make a footer that is really cool and unique?
 
Back
Top Bottom