Há algum tempo eu escrevi um artigo neste blog comentando sobre como criei minha instância Mastodon gastando pouco. Você pode conferir esse artigo aqui.

Fiquei algum tempo, pouco mais de 3 meses, com minha instância funcionando da forma como havia descrito nesse artigo. De forma bem simplificada, funcionava da seguinte forma :

Após os 3 meses iniciais, meu crédito gratuito no Google Cloud Platform (GCP) acabou e logo mais eu começaria a ser cobrado pelo uso da minha VM lá.

A VM em si não seria algo muito caro, mas o tráfego de dados é variável e eu teria que pagar por esse tráfego. Eu, como bom pão duro, obviamente fiquei com receio de me comprometer a pagar por algo completamente fora do meu controle.

Pesquisando por uma opção, descobri que a Cloudflare tem uma solução de túnel entre a infraestrutura deles e um servidor remoto qualquer (o NUC onde hospedo minha instância, por exemplo) e que e isso já inclui :

  • Interface administrativa Web simples de utilizar
  • Suporte a certificados digitais gratuitos e renovados automaticamente
  • Cache de conteúdo para otimizar a performance de acesso
  • Tudo isso em um plano gratuito

Tudo isso suportando domínios customizados, ou seja, você pode utilizar seu domínio e não precisa depdender de um domínio padrão compartilhado entre todos os clientes deles.

Você não precisa migrar seu domínio para a Cloudflare, mas no final eu acabei migrando porque o custo anual de hospedar meu domínio com eles é basicamente o mesmo que eu já pagava anteriormente no Google.

Fazendo isso, consegui eliminar a VM no GCP e, com isso, eliminei qualquer possibilidade de custo adicional relacionado a tráfego de dados que poderia passar a ter agora que meu período de uso gratuito do GCP tinha terminado.

Também de forma simplificada, a arquitetura passou a ser como a seguir :

Meu domínio fica na Cloudflare e o endereço da minha instância passa a apontar para a Cloudflare na configuração de DNS.

Eles (Cloudflare) possuem um recurso (opcional, mas eu habilitei) que assim que você cadastra um registro em seu DNS (status.andrelop.org, por exemplo) ao invés de apontar diretamente para onde deveria apontar, esse registro passa a apontar para uma infraestrutura de cache da Cloudflare.

Com isso, caso o acesso esteja sendo feito para um dado que já existe em cache, ele é servido diretamente para quem está solicitando sem precisar ir até sua instância buscar o dado, o que ajuda bastante no sentido de economizar recursos da sua instância.

O que conecta meu NUC à Cloudflare e faz com que seja possível que os acessos feitos a status.andrelop.org sejam encaminhados para minha instância é o fato de existir um software deles que instalei no NUC que hospeda a minha instância. Esse software é o que cria um túnel encriptado entre a Cloudflare e meu NUC.

Dessa forma, os dados não são trafegados expostos em aberto, sem criptografia. E com isso pude também eliminar coisas como o Caddy, que é um servidor Web que fazia o papel de proxy reverso na arquitetura anterior.

O Caddy também fazia o papel de gerenciar a renovação de certificados digitais, mas como isso agora é feito pela Cloudflare, não precisei mais manter ele.

O resultado é que ficou bem mais simples, mais barato (gratuito, basicamente) e com melhor performance, já que agora uma boa parte do conteúdo é servido pelo cache na Cloudflare sem nem precisar usar recursos do meu pequeno NUC doméstico.

Outro update, que também tem relação com fediverso, é que fui escrever sobre isso no WriteFreely e percebi que por padrão ele não suporta adicionar imagens nos posts.

Ou melhor, suporta se você adicionar código HTML para referenciar uma imagem hospedada em outro local remoto, não dentro do próprio WriteFreely. Achei algumas indicações de como resolver isso, usando o Snap.as, porém com um plano pago.

Desisti dessa idéia e no final acabei instalando um WordPress no meu NUC para substituit o WriteFreely. Para não perder a possibilidade de ter a integração com o fediverso, instalei o plugin de ActivityPub no WordPress também para que os posts aqui no WordPress possam ser seguidos como um perfil de fediverso comum, pelo Mastodon ou qualquer outra instância que entenda o protocolo ActivityPub.

Caso queira receber os updates sobre os artigos que escrevo por aqui em formato de toots em seu perfil no Mastodon ou similares, siga o perfil @write.andrelop.org e você terá o toot assim que um novo artigo for publicado por aqui.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.