TVHeadend is the way, I’ve been running it with a USB satellite tuner for 5+ years. Setting it up can be a little confusing, but once it’s running you pretty much never have to touch it again.
As for clients, there’s a Jellyfin plugin, however it seems to not work for me right now.
My client of choice is Kodi with the TVHeadend plugin, and that works great. If you still want Jellyfin integration, you could just add your recordings folder as a library in Jellyfin.