Ok, corrigido conforme Stuck on yarn install, Time out.
Para referência, em /var/discourse/templates/web.template.yml adicionei este bloco:
- exec:
cd: $home
cmd:
- su discourse -c 'yarn config set network-timeout 600000 -g'
antes deste que é chamado:
- exec:
cd: $home
hook: yarn
cmd:
- |-
if [ "$version" != "tests-passed" ]; then
rm -rf app/assets/javascripts/node_modules
fi
- su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
Mas por que ele expira o tempo limite? A solução no tópico vinculado afirma que é por causa das especificações limitadas do servidor (instância Google e2.micro, 2 núcleos, 1 GB de RAM). Mas este é um VPS de 4 núcleos e 6 GB.