Update manager for deployed app?

I’m working on an on-prem application that needs a built-in update manager, similar to checking “Automatically install updates” on Windows or an iPhone. It seems straightforward to build something that checks my servers, downloads new BEAM files, and then loads them (killing the app on an update is ok), but this seems like something that should already exist… Are there any libraries that automate any of this? Any tips if you’ve done something similar?

CI/CD pipeline?

This needs to be a “pull” update rather than a “push.” I’d like to let the user schedule when the updates happen, so a CI/CD sort of setup wouldn’t work.