I got myself a Hauppage PCIe digital tuner and installed it in one of my servers that's on all the time. Using TVHeadend, you can easily stream it to any device on your network, or use something like Wireguard or Tailscale if you want to use it outside your network.
It doesn't require a custom kernel, but Hauppage recommends using theirs for quicker updates.
I used DVB-S/S2 cards and DVB-T sticks for many years with VDR, but a few years ago I gave up and got a separate tuner box (Octagon SF8008). I was fed up with the kernel module compilation, and the DVB cards or USB boxes only lasted a few years until they died. Every time I wanted to record something, the desktop PC had to run. All the time I used the PC the cards were powered and that probably didn't help with their longevity.
I'm using TBS octa DVB-T(2)/DVB-C tuner card, which is streaming the channels to my LAN (by using Tvheadend, Mumudvb, or Astra), but I was also frustrated about compiling the driver for it whenever there was a kernel update (https://github.com/tbsdtv/linux_media). Eventually I created a Debian virtual machine and configured the tuner device available for it by using AMD IOMMU and Qemu/KVM PCI pass through. It has worked very well, and there's no need to update the kernel if you don't care about the security and vulnerabilities ;D