@frogmaiden It's any computer with GNU/Linux-libre installed and at least 2 8P8C ports (you can get more ports by installing a decent PCI-e NIC or SFP{+} card plus SFP{+} modules - which are very cheap second hand - 10G SFP+ cards are even priced reasonably - although you need to be careful to get good cards).
Typically one would get a server board with at least 2 1000BASE-T ports and plug one into the ISP connection and the other into a switch.
You can additionally get Wi-Fi by purchasing a freedom-respecting Athero's 802.11n PCIe Wi-Fi card and putting it into AP mode with wpa_supplicant.
Mine is a GNUbooted KGPE-D16, with is both a router and a server (I wish the internet connection was fast enough that the routing+server processing power usage limited the connection speed).
Although, doing so requires manual configuration of interfaces and nftables and therefore 8 hours debugging why certain things aren't working (most of the time it's the ISP's fault when things aren't working - for example dropping IPv6 packets when they're within the reported allocated ranges, because a /64 has been requested from DHCP-PD and so it assigns only a /128 and ignores the /48 request).
You can also take the easy way out and purchase a LibreCMC router and have everything working out of the box (no fun); https://librecmc.org/ - compatible devices may not be easy to find, but will be cheap.
The supported routers only have 100BASE-TX ports, but it's not like the packet counter on the internet connection is going to allow enough packets for that to be saturated and most switches are well designed enough to allow 1000BASE-T packets between devices on the LAN.