Arquitetura de autoatualização?

Existe algum material escrito sobre como funciona a função de autoatualização do Discourse? Se não, alguma indicação de onde procurar no código?

É um modelo adequado para outras aplicações Rails seguirem? Se não, existem padrões melhores por aí? Ainda não encontrei nenhum.

Obrigado por considerar!

É um plugin Discourse autocontido e está em GitHub - discourse/docker_manager: Plugin for use with discourse docker image · GitHub. A mágica acontece principalmente em docker_manager/lib/docker_manager/upgrader.rb at main · discourse/docker_manager · GitHub.

É muito amigável ao usuário e faz sentido para o Discourse, já que tentamos ocultar a complexidade de executar uma aplicação web moderna em produção, permitindo que usuários não técnicos atualizem suas instâncias quando necessário.

Além disso, existem milhares de instâncias por aí e precisamos tomar medidas para minimizar a carga de suporte. Você deve estar familiarizado com projetos de código aberto com milhares de issues abertas. Não queremos isso.