Como eu fiz a migração de servidor do meu blog Ghost do Digital Ocean para Pikapods

Nesse post mais técnico, compartilho o passo a passo de como passei a utilizar a plataforma de hospedagem open source Pikapods para hospedar esse blog

Como eu fiz a migração de servidor do meu blog Ghost do Digital Ocean para Pikapods

Em julho de 2021 eu fiz a maior mudança desse blog em 10 anos, migrei do WordPress para o Ghost, e do Hostgator para o Digital Ocean. Agora, acabo de fazer a segunda maior mudança, migrei do Digital Ocean para o Pikapods.

Esse post será mais técnico e compartilharei como fiz isso.

Problema

Atualmente, meus gastos com o Digital Ocean ultrapassam 6 dólares. Isso é muito para um blog pessoal tratado como hobby.

Há tempos venho pensando em voltar ao Wordpress e/ou abraçar qualquer outra solução gratuita. Contudo, qualquer solução gratuita que me interessa significa ainda mais tempo a investir em manutenção e desenvolvimento.

Não sou um desenvolvedor web profissional, e por mais que eu goste de solucionar os problemas aprendendo mais dessa área, sempre me frustro em algum momento pela curva de aprendizado e o tempo investido em estudos que poderia ser dedicado ao qual deveria ser meu foco: escrever.

Solução

Até que alguns meses atrás esbarrei nessa discussão no Reddit sobre lugares baratos para se hospedar um blog Ghost. Um dos comentários trazia o link para a única plataforma que eu nunca tinha ouvido falar até então: Pikapods, um serviço de hospedagem Open Source de (inúmeras) aplicações web totalmente gerenciado, sem servidores para administrar, sem anúncios e que apoia financeiramente o trabalho dos autores.

Pikapods realmente pareceu interessante e barato. Então coloquei nas minhas tarefas para um dia testar se essa pika pod tudo isso mesmo. Deus do céu, esse nome é tão maravilhoso. E minhas primeiras impressões é que essa pika pod tudo isso sim.

Discussao em forum do Reddit com comentario em CAPSLOCK muito empolgado sobre Pikapods
Me sinto completamente representado pelo comentário em Caps Lock de veganveganhaterhater.

Nos próximos parágrafos, vou mostrar como eu subi meu blog Ghost num pod dessa pika robusta e maravilhosa.

Configuração do Pikapods

O cadastro no Pikapods foi muito simples: nome, e-mail, senha e aceitar os termos de uso. Não pediu cartão de crédito, e deu 5 dólares de crédito para a aplicação rodar nos próximos meses - assim como o Digital Ocean também faz com os primeiros cadastros.

A configuração no Pikapods também foi muito, muito simples. Em dois cliques já tinha a aplicação do Ghost rodando. Bastou escolher a aplicação na lista disponível, dar um nome e selecionar a região do servidor (EU ou US, escolhi US).

Na sequência, foi gerado um link com o Ghost rodando na última versão. Ahhh, que delícia saber que não precisarei mais me preocupar em atualizar o Ghost manualmente!

Printscreen da tela de visão geral do pod e a de configurações
Aqui, a tela de visão geral do pod e a de configurações

Migração do conteúdo

Para exportar o site do Ghost, você deve ir em Settings > Labs e clicar no botão "Export your content". Um arquivo JSON será baixado com todas as publicações e outras configurações do site, como o código no code injection.

Infelizmente, não é possível baixar os arquivos de mídia da interface do Ghost como é feito com o conteúdo textual. Então, todos os posts com referência para as mídias apresentarão erros.

No novo site, voltei para a página Labs e dessa vez escolhi "Import content", onde enviei o arquivo JSON baixado anteriormente. E pronto. Todo os posts foram migrados.

Importante frisar que o tema do blog não é migrado dessa forma. Se existe alguma modificação no tema que você usa, é necessário baixá-lo na página de temas do site antigo.

Já para as imagens, segui um processo diferente através de FTP.

Download de Imagens com FileZilla

Para baixar os arquivos da pasta de imagens, usei o tutorial da Digital Ocean de transferência de arquivos com o FileZilla. Provavelmente, a pasta estará localizada em: var/www/ghost/content/images/

Uma vez logado no servidor pelo FileZilla, cliquei com o botão direito na pasta de imagens e escolhi Download.

Importante alterar a permissão de 775 para 777 de todos os arquivos do diretório de imagens no FileZilla se não conseguir baixar os arquivos. Dá para fazer isso também clicando com o botão direito e indo em File permissions.

Upload de Imagens com CyberDuck

O Pikapods utiliza SFTP no lugar de FTP - o que eu entendi que é melhor, pois usa encriptação. Portanto, não daria para fazer o upload dos arquivos no servidor novo utilizando o FileZilla.

Para isso, conferi a documentação do Pikapods de como acessar os arquivos via SFTP e escolhi seguir com Cyberduck.

Achei o Cyberduck mais fácil que o FileZilla. Apenas arrastei a pasta de imagens que baixei anteriormente para o servidor novo. E pronto. Migração de imagens concluída, e mais nenhum erro nas mídias das publicações.

Printscreen da tela de Upload do Cyberduck
Tela de Upload do Cyberduck

Atualizações DNS

Meu domínio é pela Hostgator e uso o Cloudflare para DNS, tudo que eu fiz foi atualizar os registros no Cloudflare para apontar para o Pikapods, seguindo esse tutorial do Pikapods.

Inicialmente, travei nessa parte e até tive receio de não conseguir utilizar meu próprio domínio com o Pikapods. Ou seja, ter feito toda essa configuração a toa. Isso porque adicionei um registro CNAME apontando para o endereço do pod, contudo deixei ligado o proxy - o que impedia o acesso ao IP. Depois de desativá-lo, o redirecionamento funcionou certinho.

Exceto a parte de subdomínio www, em que eu precisei seguir esse tutorial do Cloudflare de redirecionamento em massa. Antes, tinha um registro DNS para isso também que apaguei pois o Pikapods não aceita mais de um domínio apontando para ele.

Curiosidade: toda essa parte de DNS eu fiz pelo celular (estava sem acesso a computador na hora, durante uma aula de primeiros socorros da autoescola que exibia um documentário que eu já tinha assistido). Me senti muito pika.

Notas finais

Estou contente e impressionado que essa migração foi mais tranquila do que eu imaginava. Escrever essa publicação levou mais tempo do que a própria migração. Acredito que nessa nova fase do meu blog Ghost rodando no Pikapods vai me economizar no bolso e no tempo gasto com manutenção.

Essa publicação foi totalmente inspirada nessa aqui do Birchtree:

The Biggest (Invisible) Change to Birchtree in 4 Years
Back in 2019 I wrote The Biggest Change to Birchtree in 5 Years, which explained my move from WordPress to Ghost. 4 years later, I’m still very happy with Ghost, but I’d worked myself into a bit of a “thermal corner” if you will. In short, my server was running

E essa aqui do Noted foi a que me deu confiança para testar o serviço:

PikaPods - Instant Open Source App Hosting
PikaPods is an all in one solution to use open source applications with a push of a button. From the same company that brought you Borgbase.

Você também pode testar o Pikapods com $5 de crédito. Não tem links afiliados, então não vou receber nada com seu cadastro.

Espero que essa boa impressão permaneça e eu continue utilizando o serviço por um bom tempo.