Como atualizar se `/var/discourse` tem apenas `shared` e não é um repositório git

Prezados,

Tenho uma instância do Discourse configurada pelo administrador anterior em nosso servidor web do departamento. Não sei muito sobre o Discourse, mas ele precisa ser atualizado e sugere executar:

        cd /var/discourse
        git pull
        ./launcher rebuild app

Mas quando eu cd para /var/discourse, vejo apenas o diretório shared lá, e o git pull falha de acordo (não é um repositório git). O que devo fazer?

Você deve fazer uma instalação limpa em uma nova máquina virtual, criar um backup e restaurá-lo na nova instalação.

Se você não gostar dessa resposta, então deve chamar quem configurou aquela coisa para vir e corrigi-la.

@pfaffman O que você quer dizer com uma nova VM? Uma imagem Docker para o Discourse? O problema é que não consigo encontrar um manual sobre como gerenciar o Discourse por meio do Docker.

Uma nova VM significa um novo servidor virtual, assumindo que sua instância não esteja em hardware dedicado.

Se você tem o Discourse rodando, mas /var/discourse está vazio, é ou uma instalação muito antiga ou um pacote não suportado.

De qualquer forma, você deve criar um backup, iniciar um novo servidor virtual, seguir as diretrizes padrão de instalação e, em seguida, restaurar a partir do backup.

Você faz isso: https://meta.discourse.org/t/discourse-official-standard-installation/142537

Isso realmente é o que provavelmente está acontecendo. Está rodando o Discourse 2.1.0 (se isso deixar as coisas mais claras).

É exatamente isso: minha instância ESTÁ em hardware dedicado.

Então, entendo que atualmente não há Docker envolvido. Pelo menos, não manualmente. Pelo menos, é bom saber que existe apenas uma maneira de configurá-lo e que ela usa apenas git clone e o script de configuração.

O que me incomoda é como eu removeria suavemente a versão antiga, já que tudo está acontecendo em uma máquina física real (ou seja, nada “virtual”). Fiz o backup, isso é fácil. E agora?

Agora, instale em uma máquina diferente. Uma VM é preferível, pois é mais fácil escalar os recursos. Os requisitos do sistema estão na documentação de instalação.

Depois de ter a nova instalação em execução, restaure o backup.

Que tipo de instância é esta? Quão ocupada ela está? Está em uso constante?

Meu Deus… isso é de meados de 2018. Você definitivamente quer atualizar. Além de perder muitas funcionalidades excelentes, houve várias correções de segurança, incluindo algumas críticas, que você não tem.

Infelizmente, não tenho outra máquina.

Obrigado pelo feedback, mas isso não está em questão: estou tentando atualizar. Eu não era o administrador desta instância antes de ontem e sei a importância das atualizações.

Obrigado a todos pelas respostas! Perguntei ao cara mais velho, e ele ajudou. O repositório Git estava dentro de /var/docker em vez de /var/discourse por algum motivo. A partir daí, foi possível aplicar o procedimento padrão. Agora estamos na versão mais recente (2.6), uhuu! :tada:

Aha! Esse era o local recomendado há muito, muito tempo (antes de eu começar a usar o Discourse, há 4 anos).

Parece que minha solução de “perguntar ao velho” realmente funcionou!

Recomendo deixar alguma documentação caso necessário:

echo "está em /var/docker" > where-is-launcher

Essa é uma boa ideia. Ou talvez

 cd /var/
 ln -s /var/docker discourse

Embora isso possa confundir o launcher.

Não é uma boa ideia, pois /var/discourse já existe e contém shared