Honestly my router for the last 10 years is an openbsd box + pf rules for routing, dhcpd and dnscrypt_proxy...

I have an ansible playbook that creates the image and I run it on a cheap fanless x86 box....