As there's nothing to gain from keeping silent about the recent issues, let's give an update.
So .. we assumed the DOS would pass over; however the attack is now (possibly) periodically returning as a D(istributed) DOS; meaning the origin of the attack are multiple ip addresses/servers. Last night starting 22:00 an attack surpassing 20 million request was targeting discuss.flarum.org. Luckily around that time both me and @jordanjay29 had been looking at the forums and the Cloudflare increased protected was enabled ("I am under attack"). The benefit of this mode is that all clients have to wait and be scanned before allowing access. The drawback is that now and again your session would get blocked and you'd get that nice red alert banner on the forum telling you there was an error.
As I was already in the process of setting up monitoring for my own projects with prometheus and grafana, I proposed to include Flarum too. We could easily identify the higher load on the droplet before the increased CF protection.
I decided to improve our fail2ban settings, first by blocking failing ssh requests sooner and then with some additional protection via nginx using the http req limit module combined with a custom filter for fail2ban. While temporarily reducing the CF protection one specific IP from Mexico was soon banned as a result. The droplet still couldn't cope as the PHP FPM pool was configured to allow a maximum of 30 (which was simply too much) FPM processes to be started. Please note discuss.flarum.org is running on a 1 CPU/2GB RAM droplet which is outright sufficient under normal circumstances.
We'll be improving our line of defence in the coming days.