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 https://docs.ghost.org/docs/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/ghost.conf
description "Ghost: Just a blogging platform"
start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]
# If the process quits unexpectadly trigger a respawn
respawn
setuid ghost
setgid ghost
env NODE_ENV=production
chdir /var/www/ghost
exec /usr/bin/npm start --production
pre-stop exec /usr/bin/npm stop --production
5. Cruzar os dedos e restartar o serviço do blog
sudo service ghost restart
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. Copiar o footer para o tema novo
sudo vim -O content/themes/Casper-1.3.3/post.hbs content/themes/casper/post.hbs
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
sudo curl -LOk https://ghost.org/zip/ghost-latest.zip
sudo unzip ghost-latest.zip -d ghost-temp
cat ghost-temp/package.json |grep version
cd /var/www/ghost
sudo rm -rf core
sudo rm index.js
sudo rm *.json
cd /var/www/ghost-temp/
sudo cp -R core ../ghost
sudo cp index.js *.json ../ghost/.
sudo cp -R 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