Ghost upgrade

Fiquei 2 semanas sem blogar e ao entrar na tela de admin vejo que tem updates disponíveis para a minha plataforma de blog, como é meu primeiro update eu não tinha idéia de qual era o processo… Tive que ler o manual.

Estou escrevendo este post para eu me lembrar de como fiz para os próximos serem mais rápidos já que não posso confiar na minha memória:

0. Comparar as instruções daqui com as oficiais

Veja em http://support.ghost.org/how-to-upgrade se o que consta lá é basicamente a mesma coisa que aqui.

Editar este post para mante-lo atualizado /ghost/editor/9/

1. Download

https://ghost.org/download/ → botão Download Ghost

2. Copiar o zip pro servidor

scp -P MINHA_PORTA ~/Downloads/ghost-MAJOR.MINOR.PATCH.zip blog.fabricio.org:/home/fabricio

3. Fazer backups

ssh -pMINHA_PORTA blog.fabricio.org
cd /var/www
sudo cp -R ghost ghost-backup-ANO-MES-DIA

Depois, no navegador: /ghost/settings/labs/ (ou http://URL_DE_ADMIN/debug/ se o ghost for mais antigo que 0.5.6) → botão Export

Copiar este json local para o servidor tb:

scp ~/Downloads/egoismo-duplicado.ghost.2016-02-13.json USER@IP.DA.MAQUINA:/var/www/.  

3.b. (opcional) Caso use o tema Casper, mudar o nome do folder antigo

Ver a versão do tema:

cat /var/www/ghost/content/themes/casper/package.json

Com este dado em mãos, renomear o folder para deixar o nome casper livre para uma cópia limpa do tema que vem com a instalação.

cd /var/www/ghost/content/themes/
sudo mv casper Casper-MAJOR-MINOR-PATCH

3.c. Apagar o folder "core" e os arquivos index.js e package.json

Esta etapa eu inclui depois que tive que fazer o upgrade de 0.5.1 para 0.5.2 e falhou devido a um erro.

cd /var/www/ghost
sudo rm index.js
sudo rm *.json
sudo rm *.md
sudo rm -rf core

4. Sobrescrever novos arquivos e instalar

cd /var/www
unzip ghost-X.Y.Z.zip -d ghost-X.Y.Z
sudo cp -R ghost-X.Y.Z/core ghost
sudo cp ./ghost-X.Y.Z/index.js ./ghost/.
sudo cp ./ghost-X.Y.Z/*.json ./ghost/.
sudo cp ./ghost-X.Y.Z/*.md ./ghost/.    
sudo cp -R ghost-X.Y.Z/content/themes/casper ghost/content/themes/.
cd ghost
sudo sudo chown -R ghost:ghost *
sudo npm install --production

OBS pré 5. Como o serviço estava configurado

Eu tinha instalado o processo que roda o blog como um serviço em /etc/init no meu server (Ubuntu).

Para fins de documentação:

cat /etc/init/blog.fabricio.org.conf
description "blog.fabricio.org Ghost Node Service"

author      "Fabricio"  
start on started mountall  
stop on shutdown

respawn  
respawn limit 99 5

script  
    cd /var/www/ghost
    npm start --production >> /var/log/blog.fabricio.org.log  2>&1
end script  

5. Cruzar os dedos e restartar o serviço do blog

sudo restart blog.fabricio.org

E para ver no log se a versão que subiu é a que eu instalei de fato:

cat /var/log/blog.fabricio.org.log | grep ">" | tail

Algo tipo

> ghost@MAJOR.MINOR.PATCH start /var/www/ghost

Com os valores que eu espero tem que estar nas últimas linhas.

6. Enjoy!

Esta deu certo, se algum dia não rolar e eu precisar resgatar o backup eu dou um update aqui neste post para documentar o procedimento… vamos torcer para que não haja necessidade :P

7. Resumo

cat /var/www/ghost/content/themes/casper/package.json

copy/paste trocando A.B.C pela versão do Casper e X.Y.Z pela versão do Ghost

cd /var/www/ghost/content/themes/
sudo mv casper Casper-A.B.C

cd /var/www
ls -la

cd /var/www/ghost
sudo rm index.js
sudo rm *.json
sudo rm *.md
sudo rm -rf core
sudo cd /var/www
sudo unzip Ghost-X.Y.Z.zip -d ghost-X.Y.Z
cat ghost-X.Y.Z/package.json |grep version

sudo cp -R ghost-X.Y.Z/core ghost
sudo cp ./ghost-X.Y.Z/index.js ./ghost/.
sudo cp ./ghost-X.Y.Z/*.json ./ghost/.
sudo cp ./ghost-X.Y.Z/*.md ./ghost/.
sudo cp -R ghost-X.Y.Z/content/themes/casper ghost/content/themes/.
cd ghost
sudo chown -R ghost:ghost *
sudo npm install --production

sudo service ghost stop
sudo service ghost start

Fabricio Campos Zuardi

Read more posts by this author.

Subscribe to Egoísmo duplicado

Get the latest posts delivered right to your inbox.

or subscribe via RSS with Feedly!