I run Transmission on a VM that is permanently connected to a VPN. It dumps the completed files on an NFS share. I'm open to trying something different. Transmission seems like the best option.
I run it headless in a small pc in my basement that I use as server. it also has an http api so other systems can integrate with it (eg another program that looks for torrents and pushes the torrents into it.