We’re looking for a way to push updates to appliances that are shipped to customers and not always online. Are there any existing tools for this?
If there aren’t, this is what I had in mind:
- Our Hydra instance builds NixOS system closures and pushes them to S3.
- The system closures have a post build hook that writes the store path to a “latest version” file online.
- The appliances have a system service that periodically checks the latest system closure. If it is not yet in use, the service will download the closure, update the system profile, run
switch-to-configuration
, and schedule a garbage collection.
Does this process make sense?