Welcome to the new FAForever forum!

11

Welcome to the new FAForever forum!

This forum is the replacement for the old phpBB one. You probably have a lot of question, so we try to answer some of them already:

What has changed?

Single Sign On

We now feature a single sign login bound to your FAF account. You do not need to create a forum account, you just login with your FAF username and password. If you change your FAF account name it will also change in this forum.

This allows to always be up to date with playernames. But even more important it is the ultimate spam prevention: a spam bot can't register to the forum without registering FAF first. This prevents all automated spam attack against the underlying software nodebb.

It has a drawback though: If you can't create or access your FAF account you can't ask for help in the forum. We kindly advise everybody to move such request to the #technical-help channel on Discord.

Restructuring

We dropped a lot of sub-forums that weren't really used before. We might reconsider changing more stuff based on your feedback.

Underlying software

We are now running on a software called NodeBB. Nodebb aims to also look nice on mobile devices. Our NodeBB uses MongoDB under the hood which is a much more suitable datastore for a forum (=> better performance)

phpBB was running fine, why drop it?

phpBB was not fine! Let me tell you why:

  • Recently it encountered a lot of downtimes which we were unable to find a root cause.
  • We got spammed really hard and could only partially prevent it (and you suffered from horrible captcha issues!)
  • The administration and moderation tools were a usability nightmare.
  • phpBB itself was almost a 9 year old version that never received any updates. Undocumented manual changes to the codebase and database to enable features such as the "like"-system made it impossible to upgrade it safely.
  • It was running on an outdated php version which is a security threat to our server.

What's going to happen to the old forum?

This is a very good question. We will not migrate it, since this would not work out with the new forum structure and the new account linking (in the old forum we have no verified connection between a forum account and a faf account).

We want to make the forum read-only for now and maybe somebody in this community (wink, wink!) wants to write a script to turn the old forum into a static page archive.

The design of this forum ... ?

... is debatable for sure. It took me 1 1/2 year from the first evaluation to the working solution as of now. Design was no priority topic at this point. But NodeBB offers a lot. If you are interested in helping out, please contact me.

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
– Benno Rice

Why did we choose NodeBB instead of [any another product]?

Upgrading to the latest phpBB

The obvious choice would have been migrating to a newer version of phpBB. But as I mentioned before there are some issues that would have made this transition a walk on a tight rope.

Our phpBB installation is 9 years old, the underlying phpBB 3.0 release even older (according to Wikipedia work on phpBB 3.0.x began in late 2002, first release candidate was in May 2007). The web software development world was a completely different one back then as it is today:

phpBB 3 had no concept of installable mods or plugins. If you wanted to extend your installation you would follow the extension developers guide and manually edit php code files and manually run SQL statements against the database, thus adding fields, tables and whatever the developers came up with. Also version control on the running server was not a thing back then.

Unfortunately our installation made use of this. For example the whole like-system is deeply intrusive into every part of the application. The "solved" feature in the help forum is another example. Eventually no active server admin knows what has been changed to the system and there is no way to look it up.

All of these additional features would instantly break on a new version, as there is no corresponding code handling this in a newer version. Furthermore every change to the database could make a potential upgrade fail. And there is nobody out there to help you upgrade a manually fucked up 3.0 installation throughout version 3.1 and then 3.2. And if you then run into some weird unexplainable issues due to some weird migration leftovers nobody will be able to help you.

In addition to that past experience shows that former administrators seems to have manually fiddled with the database as some features in the database are broken or don't work as intended.

An upgrade would have come with high risk, unknown outcome and lots of efforts. This is the reason why we decided to look for a solution with a clean installation. Furthermore phpBB 3.2 didn't even match our criteria.

Our requirements (and how NodeBB matches them)

Before selecting any kind of software (or product) you should know what you want. Knowing the issues of the old forums and from other issues we had in FAF over the last 5 years, I made a list of requirements before I went to search for the market.

Eventually NodeBB was the only product I found matching all criteria, so I'll leave out the comparison with other software out there.

  1. The software is actively maintained. This sounds trivial, but a lot of projects are in a semi-zombie state and we're selecting a board for the next 10 years, right?
    ✔ NodeBB is actively maintained, e.g. they just release the v1.14 release series with two bugfix releases while I was setting it up.
  2. The software has to be open source.
    We are an open source project. We live open source. Also we don't have hundreds of dollars to throw out of the window.
    ✔ NodeBB is open source and available on Github.
  3. The software is battle proven by large installations. We don't want to make a bet on some newcomer thingy with fancy features, we want stable enterprise-like software.
    ✔ NodeBB is widely adopted. See their website for examples.
  4. It needs to have a large community supporting it. Bonus points for a company backing it with support.
    A large community supporting it + open source means even if the company behind it goes out of business, the community will most probably take over.
    ✔ NodeBB is also a company, offering cloud installations for money and paid work on support or customization. [So if everything burns we could throw a bit of money at them and they could help us.]
  5. It needs to have official docker support by the core team. This is mostly a server administration thingy but FAF has a few examples where this is not the case and it's a pain in the ass to keep it working.
    ✔ NodeBB has official images on dockerhub.
  6. It needs to offer a way to integrate our own single sign on.
    Single sign on is a nice feature to sync FAF accounts to the forum. We struggle with lots of support request of people who don't give their account name. Another benefit is, that it keeps the spam bots out, as the FAF registration process is completely unique and spam bots only attack default registration processes.
    ✔ NodeBB supports additional login system via plugin. For OAuth2 (which FAF is using) they provided an excellent skeleton to work on with. So the plugin is decoupled from the rest of the code and will not interfere with regular updates (unless there is a rare breaking change in exactly this part of the application - but then they publish it in the release notes).
  7. It needs to offer a web api for reading and writing stuff. Reading is beneficial for potential integration with our clients and the website to maybe drop Wordpress at some point. Writing is crucial for the one feature I hate FAF the most: the ability to change your username. Changing your account name is very very very uncommon (usually you just have a display name you can change) and it's not supported by regular authentication providers.
    ✔ NodeBB offers seperate read and write APIs via plugins. Utilising this I was able to create username synchronisation with our API in an custom plugin (which also handles the single sign on).

Eventually the points 6 and 7 were the dealbreakers on most forum alternatives out there.

On another side note: As a developer I hate JavaScript for being unreadable, unstructured and totally chaotic. However, when I dived into the codebase for writing the plugins I have seen the cleanest JavaScript code I have ever seen in my life. Therefore I can tell you that the NodeBB guys are really professional and know what they are doing. This gives me additional trust in this system. (Something I can't say about phpBB by the way.)

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
– Benno Rice