I'll be at 39c3 in a few days. If you're coming too and want to talk about reaction, don't hesitate to ping me!
#39c3 #CCC #reactionrust
I'll be at 39c3 in a few days. If you're coming too and want to talk about reaction, don't hesitate to ping me!
#39c3 #CCC #reactionrust
The NixOS module for reaction has been upstreamed in nixpkgs!
Many thanks to @loudgolem for the enhancements and upstream of the original module.
Follow advancement of the NixOS CI/CD:
https://nixpkgs-tracker.ocfox.me/?pr=468019
Someone wrote a wiki page to ban IPs using ipset.
If you ban IPs with iptables, consider switching to ipset, as it's much faster!
https://reaction.ppom.me/actions/ipset.html
Results on one benchmark:
10% saved on CPU time,
10% saved on actual run time,
20% saved on RAM max usage,
20% saved on disk writes
The benchmark really is on the internals of reaction, so it doesn't take into account real life scenarios where reaction has more complex regexes, and writes more complex data in DB.
So this is kind of the theorical maximum performance boost this change can make.
Still, that's a lot 🏆
Ok I just switched reaction's ip bans from plain iptables to ipset.
This made reaction startup 10 times faster on server 1.
2,600 ips added in 3s instead of 30s.
ipset is far superior than plain iptables for big IP lists. I knew this but I'm still surprised now that I see this!
And the firewall stack must be much faster as well when treating incoming packets!
First time I profile reaction, which is already light on CPU (but I must work on the RAM consumption, which is too high imo)
I used samply, which integrates with Firefox Profiler, it's great! 1/
I updated earlier today the documentation for reaction's AI crawlers blocker!
You can now automatically list the full community list of AI user agents in reaction 🤖
And the regex is more optimized.
I also published an article on how to set up alerting for systemd units.
>_
After months of email alerting with reaction, I finally published an article on how to send 💌 email 💌 with reaction.
I made the choice to use 🥌 curl 🥌, which is ubiquitous, very flexible, and knows how to speak SMTP.
So, someone in the issue made me realize that some bots impersonate the user agents of big actors, such as Googlebot. I checked my webserver logs and found a lot of them actually!
I liked the challenge, so I just wrote an article about how to do this in less than 40 SLOC 🏆
https://reaction.ppom.me/filters/useragent-impersonators.html
How to deal with specific patterns that we want to ignore in reaction?
I have an important design decision to make and I want your advice!
I'm always positively surprised when I see that reaction is packaged in a Linux distribution. Today it is in Chimera Linux!
https://pkgs.chimera-linux.org/packages?name=reaction
#reactionrust #ChimeraLinux
To be able to index #reaction on the awesome-rust list, it must have > 50 stars. Well, 50 stars on framagit and 50 stars on github are far from equivalent, but it should be feasible! It already has 34 stars. If you have an account on Framagit, would you star it?
➡️ https://framagit.org/ppom/reaction
Boosts welcome!
#reaction #reactionrust #framagit
After a lot of researching and thinking, I finally started coding reaction's (upcoming) plugin system!
It will permit to write custom stream, filter and action logic, in Rust.
It'll make use of stabby, a crate easing the definition of a stable ABI in Rust, thus permitting reaction and its plugins to be compiled separately, at different times.
Roadmap: https://blog.ppom.me/en-reaction-v2/#plugin-system
stabby: https://docs.rs/stabby/
#reactionrust #reaction #rust #plugin #stabby #nlnet
(1/n)