Custom build of OpenWrt with some form of remote access

If you're bold (and doing this remotely might be bold, at least with the current prototype), you could install the Attended Sysupgrade package (luci-app-attendedsysupgrade).

This is an astonishingly cool enhancement to the ImageBuilder. It is a LuCI package that sends a list of your local packages to the ImageBuilder which builds an image with everything you have installed, then ships the firmware back to your browser, which then automatically installs it.

I have used it several times, with complete success. But to date, I have only used it on devices I can walk to in a few minutes. If you're curious, you can watch how it works: - 4 minutes and 53 seconds to an updated router.

So definitely test this locally before upgrading remote devices. Cheers!