Because of the ongoing transition from ipv4 to ipv6 in the internet, ipv4 will be limited in routing capabilities on the ISP-side.
With today DS-Lite stacks given by the ISP, the NAT-routing mechanism has been shifted to the ISP-side and not more than a local ipv4 network without public IP's is offered.
Here it is described how to install OpenWRT to a Linksys WRT1200AC. Other routers should be similar . A few basic features like printserver, DoH and mDNS are listed here.
The idea is to run a docker host on the router running openwrt. It should be possible to run certain containers on the router to be accessible 24/7 from the internet. Because docker and the images consuming a lot of disk memory, the internal flash of the Linksys router is not sufficient and a external USB memory drive needs to be attached to the router. The boot process is in two steps, the first step is starting from the internal flash and mounting the external root filesystem. The second step is booting further from external rootfs.
The idea is to extend the existing flash memory in the router hardware containing the rootfs by a writable filesystem on a USB connected SSD. Follow this guide for using an external SSD as extroot overlay to the system.