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
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.
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!
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.
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:
E essa aqui do Noted foi a que me deu confiança para testar o serviço:
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.