Blogando com Publii e hospedando no Github Pages

Depois de alguns dias testando e usando o Publii pra ressuscitar meu antigo blog pessoal, vi que realmente seria a escolha ideal para mim, que vinha sofrendo há anos com a conta grátis do Awardspace, que já foi muito bom para um blog pessoal mas hoje está bem inviável. Pensei bastante em subir os arquivos para o Cloudflare Pages inicialmente, já que utilizo ele já para DNS e parecia lógico manter tudo junto, mas devido ao próprio Publii já ter pronta a integração de subir os arquivos processados diretamente para um repositório no Github e a facilidade de usar o Github Pages ser muito grande, parti para esta opção.
Por que o Publii?
Com minha experiência prévia usando Wordpress, que necessita de PHP e uma base de dados MySQL/MariaDB, percebi que não é simples achar uma opção de hospedagem gratuita realmente boa. Dito isso, pesquisei algumas alternativas para gerar um site totalmente estático, algumas opções que verifiquei foram o Hugo e o Jekkil que são muito boas também, mas o editor integrado do Publii me conquistou, lembra bastante o do próprio Wordpress, totalmente visual mas com opção de editar o HTML, e tem o modo em blocos também, que não estou familiarizado. Os outros eu precisaria escrever o markdown na mão, ou arranjar um editor visual separado.
Também por ser código aberto, o que garante que qualquer coisa que acontecer com o projeto a comunidade pode tentar dar continuidade se necessário, e possui importação de posts a partir de um backup do Wordpress, apesar que precisei editar os posts pra ajustar as imagens e reformatar os trechos de código, mas foi bem tranquilo isso.
Criando o repositório e configurando o Github Pages
Após a escolha, o segundo passo foi criar um repositório na minha conta do Github para armazenar o projeto do blog, subindo ao menos o README.md pra criar o branch main. Super simples e nenhum segredo. Para o Publii ter autorização para subir os arquivos, resumidamente precisou criar um token, configurar a aba servidor do Publii com as informações do Github (e-mail, token, repositório, branch, etc), salvar e sincronizar os posts. Um tutorial bem completo você pode encontrar aqui: Creating a GitHub Pages site.
Note que isso acaba apagando os arquivos que estiverem no repositório, como o README.md, o arquivo de licença, etc, para evitar isso é preciso adicioná-los no Publii também, na aba "Ferramentas e plugins", no gerenciador de arquivos, e incluí-los por aqui.
Configurando o domínio
No meu caso, eu tenho este domínio dudaskank.com e para utilizá-lo foi simples também. No Github Pages segui o passo a passo do artigo Gerenciar um domínio personalizado do seu site do GitHub Pages, só ir nas configurações do repositório, ir na seção code and automation, pages e colocar o domínio personalizado, e no meu caso isso criou o arquivo CNAME na raiz do repositório, baixei ele e adicionei via gerenciador de arquivos do Publii também, senão o próximo commit ele apaga.
Em seguida, parti para o Cloudflare, onde está configurado o domínio, ajustei os IP's do registro A para o DNS do Github e um registro CNAME do subdomínio www para o endereço do blog no github pages.
Ainda no Cloudflare, já aproveitei para criar algumas regras, como redirecionar HTTP para HTTPS e colocar tudo em cache, já que é tudo estático mesmo, só clicar em Criar regra e seguir os modelos já prontos. Também no Cloudflare, na parte dos domínios ainda, configurei na aba SSL/TLS personalizado no modo completo.


E agora?
Tudo pronto, como pode ver na barra de endereço, está funcionando rs, resolvi o problema que tinha com o blog em PHP, que precisava de vez em quando atualizar e em razão do local que hospedava banir algumas palavras, alguns posts eu não conseguia criar ou se conseguisse não podia editar pelo painel do Wordpress, porque só de renderizar um texto com palavras como "proxy" já redirecionava o site e o deixava inutilizado.
O difícil agora será a inspiração pra voltar a escrever e registrar os problemas e soluções que for encontrando e achar interessantes para quando eu me deparar com eles novamente eu lembrar do que fiz um dia.
Sincronizei o site mas... as coisas novas não apareceram, o que houve?
Se você seguiu algo semelhante ao que fiz, está usando o Cloudflare para cachear os arquivos, então para não ficar esperando ele atualizar o cache sabe Deus quando, pra subir na hora vai precisar entrear novamente nas configurações do seu domínio, aba Caching e em Configurações, clique no botão "Limpar tudo", isso apaga o cache no cloudflare e vai recarregar tudo na próxima vez e resolve isso.

Inclusive, quando fui publicar esse post e vi que não atualizou o índice, lembrei que tinha que fazer isso novamente e resolvi editar o post e atualizar com essas informações.