
Como atualizar o Node.js para a última versão na Digital Ocean para o Ghost
Ao atualizar o Ghost para uma versão mais recente você pode se deparar com um erro similar a esse depois de rodar ghost update.
A pergunta que fica é: Como atualizar o Node.js na Digital Ocean para a última versão necessária pro Ghost?
Vamos ao passo a passo:
sudo apt-get updatepara buscar as últimas versões dos pacotessudo apt-get upgradepara atualizar os pacotes usando as últimas versõescurl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -(aqui vamos usar a versão 18, mas você pode trocar pela versão 20 ou superior)sudo apt-get install -y nodejs(para substituir a sua versão atual pela última versão instalada, nesse caso a 18)- Ao rodar
node -vvocê deve ver a nova versão no terminal
Agora você pode prosseguir novamente para atualizar o Ghost no seu Droplet. Antes, precisamos entrar na pasta e logar com o usuário correto.
sudo -i -u ghost-mgrcd /var/www/ghost
Edit Outubro/24: Depois de usar a Digital Ocean por vários anos, entrei no programa de referrals. Caso queria criar uma conta e receber $200 créditos para gastar em 60 dias, você pode utilizar o meu link de afiliado: digitalocean.com. Como faço tudo com total transparência, ressalto que se você usar o meu link, recebo uma comissão da Digital Ocean em forma de crédito para gastar na plataforma, o que me ajuda a manter o blog no ar.
O primeiro passo é rodar sudo npm install -g ghost-cli@latest (para instalar a última versão da CLI. Caso você não instale, terá um erro similar a esse:
Agora é só rodar ghost backup (por garantia) e depois ghost update. Pronto.
Caso você tenha algum erro relacionado ao banco de dados no processo de update, você precisa atualizar a configuração do Ghost. É super simples.
O erro que você deve ver é similar a esse aqui:
Esse erro acontece por que o Node.js 18 prefere a resolução ipv6 em vez de ipv4 - você pode ver isso na mensagem de erro com a conexão MySQL ::1:3306. Se o seu servidor MySQL não estiver ouvindo na interface ipv6, então o Node não será capaz de se conectar a ele.
A correção mais rápida é especificar explicitamente 127.0.0.1 para o host do seu banco de dados no lugar de localhost na sua configuração do Ghost.
Você pode alterar a sua configuração rodando vim config.production.json.
No final, a configuração deve ficar semelhante a essa:
Depois de salvo o arquivo, você precisa reiniciar o ghost rodando ghost restart. Pronto! Ao seguir essas etapas você atualiza o Node.js e o Ghost.