Banana Pi BPI R4 or
NanoPi R6S
they have microSD slots and/or NVMe. Or just an x64 device (Intel N100 or N305) with multiple network ports.NVMe is great for adding swap and frequently updating containers.
Edit: just checked and it's only got 2 or 4gb ram so I'm less interested in it.
I'd avoid anything arm based that doesn't have a7x cores (ideally a76/a78 or newer, though I don't think there's any SBC socs using the a710/715/720 yet). A55 cores are old stupidly slow efficiency cores (area efficient, not power efficient).
Sinovoip's OEM build is an ancient 21.02 one. Whereas in the official one wifi is completely broken, working SFP is pure luck as "many" modules (all four fiber ones I've got here) on kernel 6.6 either don't show at all or just fail to come up. This was known to OpenWrt's mediatek maintainer who preferred to "spot and fix" it on the go:
https://github.com/openwrt/openwrt/commit/6257ea018a7d5b8d4b...
Meanwhile there are about two kernel devs working on mediatek in their free time who've only begun upstreaming R4 support, eg. Frank W.'s DTS parts… for kernel 6.14. (The other dev is Eric. W.)
To quote Frank W.: "The patches i posted are mainly patches adding basic support,only slightly changed to get accepted for mainline. There is no network part yet,also no sfp. Maybe i add sfps in next round,but without full network part (which is much work) it will not work." ( https://forum.banana-pi.org/t/bpi-r4-and-sfp/16945/330 )
Edit: The R4 also needs a soldering mod for certain SFP modules, and prior board revs have resistors that break SFP if NVMe is present (I'd say: sure to get 1.1, but Sinovoip originally shipped that rev broken as well, and didn't increment to 1.2 for the fixed ones).
This is almost never required. They have a long list of supported devices, so unless you're trying to put OpenWRT on a device you already have that requires hardware mods, you should be able to easily find a compatible device that doesn't require this step.
then install is as easy as flashing a file via the stock ui.
i dont get people going with the free alternative (wich is great for a lot of people on a budget) and then crying its harder then the thousand dollars alternative.