The proper changelog/announcement
Not long ago, I've announced that FreeFlarum now has a development site available at https://freeflarum.dev, for open-beta testing of this update.
Now, I am happy to announce that I've been working hard to roll out the next big FreeFlarum update for all of you.
There's so much that happened over the last 2 months.
Please keep in mind that I wasn't able to recreate a busy, production server environment during development, where thousands of requests are being served every minute to thousand of unique forums with distinct setup. So, these changes might eventually come up with some side effects.
And while I tried my best to test everything, it is possible that some bugs could have slipped under my nose.
Please, let me know if that happens - as you can see, your feedback is very important to me, especially in this case.
But without any further ado, let's dive deep into all the new, exciting things:
The https://freeflarum.com website got a little design "upgrade".
Just a quick note, I quoted "upgrade" because I am not good at frontend so I am not sure whether someone more talented out there would call it an "upgrade". But I certainly tried my best to make it look as pleasant on eyes as possible.
Some smaller changes related to the main website that are worth to mention:
- Footer was updated to better inform about FreeFlarum's independence/affiliation with the Flarum Foundation;
- No white mode for now, sorry. I just couldn't make it look even remotely good in time (I am a dark mode user, so you can see why this didn't quite work out well). I did some simple statistics, and at around 10 % of requests made to main website use white mode, so it will eventually make it's comeback, just not now as it doesn't have very high priority IMO;
- More changes below...
Completely re-designed the forum registration form
The forum registration form is now a multi-step form that acts like a setup wizard for forums. It will take you through all the steps required to create your forum.
When you click on the "Next" button, the current step's inputs are checked for possible errors. You no longer have to submit the form, only to find out that, for example, the forum name can only contain numbers and letters.
There are two additional steps that weren't present before:
You can now choose a forum template
Available during sign up, everyone can now choose a template for their forum. There already was a button to change the database template, but since there were no templates to pick from, that feature was left redundant.
But now, finally, you no longer have to start from scratch - instead, pick from some of the hand-crafted templates for your new community.
You can currently choose between a blog, a discussion forum or a blank (minimal) forum, which is the standard skeleton. It ain't much, but more templates will be added over time. If you have any ideas, please let me know! You can even create a new forum and make it look like a template - if you do so, please contact me and I might feature it in the template selection!
Also, no more creepy pre-registered users on new forums. Yay!
It is now possible to pick parent domain during signup
Before, all new FreeFlarum forums had the
flarum.cloud) domain by default. You could change this in the settings by linking your domain to
x.flarum.cloud, but most people probably didn't realize this.
That's why it's now possible to choose between these two from the very beginning of your journey (and you can change them later too).
Welcome post for new forums changed
Specifically, I made it more clear what FreeFlarum's goals are - to provide users an easy way to create their community with Flarum, without unnecessary censorship. There is also more important information included, such as FreeFlarum's new limits (read below) and important third-party links, as well as more tips for your new forum.
It now lies at https://docs.freeflarum.com (for quite some time now), and later today, a new version will be deployed that was rebased from the ground up to elaborate on some frequently asked questions in more detail, with the most recent information available
Are you bored yet, reading this huge wall of text? Sorry about making this post so big... Anyways, let's talk about some of the more interesting and serious stuff then:
I can forget about our friend, Nginx. It was a good pal, but maybe Caddy is better? Wait, who's Caddy?
Okay, this change might not be very apparent at first glance, and is purely related to FreeFlarum's behind-the-scenes-witchcraft. To be honest, I didn't even know that Caddy existed before. First time I learned about it was when I saw it in the Flarum documentation.
And when I replaced Nginx with Caddy on my development server (where this whole update was tested), I started to see some benefits that were absent if I were to use Nginx.
Caddy is very easy to setup and maintain, which is ideal for a small-not-so-small project like FreeFlarum that is (at least currently) maintained by a single person (that's me!). It allows me to focus less on the technical stuff, and to write better code.
It might not be as battle-tested as Nginx is, but I think that the pros outweigh its cons, and it just does its job.
The noticeable thing that FreeFlarum (and also forum admins) will benefit from is that Caddy handles HTTPS out of the box. I have setup Caddy's "on demand" TLS, which will make custom domain management easier, and it will also make stuff faster/smoother under the hood.
I no longer have to maintain a separate script that renews all the certificates - Caddy does that for us automagically, which works better for me.
Online test grades
Because of Caddy and some fancy Cloudflare tweaks, all major online SSL/domain tests' grades for main website (https://freeflarum.com) have been greatly improved:
In all instances, the grade was improved by at least 1 level. Give it a try and let me know if there's anything else that I can improve!
API & webapp update
FreeFlarum's logic was split into 2 separate components: Web and API:
The basic flow:
Obtain access token -> Put it in request header/cookies -> Perform API requests
So, should you for any reason want to access your forum data remotely, you may do so now. You can now fetch information about your forum, update your domain or download your data - all remotely!
A package to access FreeFlarum's API will be created soon (Python 3.6+).
Check the API documentation at https://api.freeflarum.com!
Some background tasks for you
Before, when you requested FreeFlarum to perform some tedious task that takes more time, you'd need to stay on the page and wait until it's complete. Specifically, this was the case for new forum registrations and forum fixups.
Now, the waiting is no more. Forum creation feels instant, and so do fixups as well. How this works? After you send your request to, let's say, register a forum, FreeFlarum sends the response to your browser immediately, and puts the forum creation task into background. This unfortunately also means that you won't be alerted if something goes wrong during the actual forum creation (because your browser had already navigated away from the original request), but it makes everything feel way smoother and just faster in general.
Before this update came out, it was possible to donate 7 € or more to hide the footer, and 20 € or more to also unlock infinite, unchecked local FoF Upload storage. It was pretty cool, but I must sadly enforce some rules regarding this now that FreeFlarum has gotten bigger.
Now, all forums that will exceed a certain space usage of uploads folder (on FreeFlarum's server) will have their local upload driver disabled. On the other hand, FoF Uploads are now unlocked after you donate 7 € or more, so that's a plus.
It's just not infinite anymore:
- 7 € or more gets you 500 MBs worth of available uploads
- If you have donated more than 20 € before this update, you get an additional 500 MB, for a total 1 GB worth of FoF Uploads
These limits are forum-wide. If the cumulative size of all file uploads of all users at your forum reaches the respective threshold, the local upload driver will be disabled automatically, until the space is freed up.
You can find out how many MBs are currently being used by your forum at your FreeFlarum settings.
The "7 € or more removes FreeFlarum's footer" donation rule stays as it was and will remain untouched.
These limits can be easily raised, but there is no reason to do so right now, as even the largest FreeFlarum forums use under 100 MB of total assets storage.
Harder, better, faster, stronger... donations
In the ancient times (specifically, before yesterday), all donations were processed manually. I would get a fancy E-mail from PayPal, and I would need to manually mark your forum as donor at FreeFlarum.
Now, I have migrated to Ko-Fi. It uses PayPal + Stripe under the hood, which means that FreeFlarum now also accepts donations via credit card, in addition to PayPal. This alone is quite cool, but what's better is that Ko-Fi has a fancy webhooks setup which I integrated to FreeFlarum's backend.
Now, it's as simple as inputting your forum ID (your forum tag is preferred), donating, and you will be marked as donor almost instantly - and you don't even have to leave FreeFlarum's donation page. If FreeFlarum fails to fetch your forum by its ID, I will be notified of that via E-mail and I will mark you as donor manually (if I still somehow miss you, please E-mail me).
Details can be found at the new donation page.
- Fixed a potential security vulnerability, where you could use API endpoint for extension icon (old:
https://freeflarum.com/api/extension_icon/...) to fetch files that are not actually extension icons;
- Improved TLS, security headers and policies (see above)
I am not a lawyer or a professional writer, but I tried my best to elaborate on some things. Please, do check the new:
Other small (yet important) tweaks
- New support page;
- If you remove your forum at the settings page, your forum will no longer be archived anymore! Instead, it will be destroyed forever right away - so, download your data before you decide to remove your forum;
- Forums that are manually removed by me or FreeFlarum (during inactive forums cleanup) will still be archived and available for reactivation. Please, see the Fair Use Policy for more details;
- Forum removals can contain reason now, so you will be E-mailed as of why exactly was your forum removed, and it will also make moderation easier for me;
- The data that you can download now also included third-party extension files, such as FoF Uploads and profile covers (before, you could only download avatars);
- Fixed a bug where you couldn't register a forum that was
destroyed before, because the name was apparently already taken;
- Potentially fixed a bug with Flarum's locale strings, where they would break if you'd enable an extension that you haven't enabled before (this could be fixed via rsync/fixup from settings, and since that setup had changed too, I think that it could fix this problem as well);
- You can now login with any identifier for your forum. In other words, this means that you do not need to know your forum name/tag in order to login. You can use either the forum tag, your E-mail address or your forum's hostname;
- The extension page now redirects you to Extiverse instead of Packagist after clicking on an extension icon;
- All new Flarum installations will now use the
mail driver by default. This driver didn't work before due to missing configurations, but now it works and allows you to quickly choose between your own and FreeFlarum's mail server, without needing to know the default FreeFlarum mail configuration;
- It is possible to export certain tables of your forum to CSV, from your FreeFlarum settings;
- Fancy access tokens management in your FreeFlarum settings - allows you to view your logged-in sessions. You can also revoke certain access tokens, which improves security;
- Dropped hardlinks setup. One of the biggest (and toughest) decisions in this update. This introduces a few potential issues, but it should fix annoying bugs related to Flarum extensions and Flarum's configuration (forums will no longer be "out of sync", extension updates will be instantenous for all forums,
- New commands to make forum management easier for me, and to resolve support requests faster
- FreeFlarum's CLI is also more colorful and modern now, for my own viewing pleasure
- Updated countless configurations and codebases (from FreeFlarum's server side) to be more modern, stable and to use less repetitive code (for example, before each forum had their own JSON configuration, which had to be kept in sync with FreeFlarum's database - now, all data is pulled from the database directly, meaning that I won't need to do twice as much work when I want to update some forum configuration)
Now, for something different...
Features that didn't make it into this update
Not yet. I couldn't deliver this in time, despite it being one of my main focused during this update. It turned out to be way too complex from the code perspective, and by the time I'd figure it out, I'd already waste all of my spare time reserved for this whole update. Sorry
Donations via cryptocurrency
There was an option to consult crypto donations through E-mail, but this is not possible anymore due to lack of interest in this alternative form of donation, and also because it needed to be handled manually (as I couldn't find any good and free service and integrate it with FreeFlarum).
Forum reactivation form
It was possible to re-activate your forum via the support page, but that's no longer possible. It was quite buggy, and most people still contacted me via E-mail, so I decided to remove the burden of maintaining the form, and I have decided to handle forum reactivation requests manually instead.
Before, https://freeflarum.com/teapot was a thing. I am pretty sure that no one actually ever discovered this route, and it was kept just as a little, funny secret.
On the bright side, I've replaced the old teapot Easter egg with another ones, that have more of an... extraterrestrial origin. Ones? Have? Yes, there's more of them. And they like
.html format, too! But who are they...?
And, as always, thank you everyone for your support and patience! I really appreciate it. I will continue to monitor the new setup's health, and push fixes as time allows. Please, notify me if something's unclear. Cheers!