We run a Rust program to install / upgrade canisters.
Good timing though… we’ve just this second made the OpenStorage repo public!
This is the system we use to store files sent in OpenChat and we install / upgrade canisters using essentially the same technique here as in OpenChat.
See here - open-storage/utils.rs at main · open-ic/open-storage · GitHub