Hospedagem de Gerador de Feed do Bluesky: Opções Gratuitas vs Pagas Comparadas
🔍 WiseChecker

Hospedagem de Gerador de Feed do Bluesky: Opções Gratuitas vs Pagas Comparadas

Os geradores de feed do Bluesky permitem criar feeds algorítmicos personalizados que filtram postagens por tópico, idioma ou engajamento. Executar seu próprio gerador de feed exige hospedá-lo em um servidor que atenda às especificações técnicas do Bluesky. Este artigo compara opções gratuitas como Vercel e Railway com serviços pagos como AWS e DigitalOcean.

A principal diferença entre hospedagem gratuita e paga é confiabilidade, uptime e limites de recursos. Os planos gratuitos geralmente impõem cotas de CPU, memória ou requisições que podem fazer seu feed ficar offline quando o tráfego aumenta. Os planos pagos oferecem recursos garantidos, domínios personalizados e suporte profissional.

Você aprenderá os requisitos exatos para cada nível de hospedagem, instruções de configuração passo a passo para os provedores mais comuns e erros comuns que fazem os geradores de feed falharem. Ao final, você poderá decidir qual opção se encaixa no seu orçamento e expectativas de tráfego.

Principais Conclusões: Hospedagem Gratuita vs Paga para Gerador de Feed do Bluesky

  • Planos gratuitos (Vercel, Railway): Adequados para feeds pessoais de baixo tráfego com menos de 1.000 requisições por dia, mas com atrasos de inicialização a frio.
  • Planos pagos (AWS EC2, DigitalOcean Droplet): Oferecem CPU dedicada, uptime 24/7 e suporte a domínio personalizado para feeds em produção.
  • Requisito do PDS do Bluesky: Geradores de feed precisam rodar um servidor compatível com PDS com suporte a WebSocket, que os planos gratuitos muitas vezes não têm.

Entendendo os Requisitos de Hospedagem do Gerador de Feed do Bluesky

Um gerador de feed do Bluesky é um servidor que implementa o endpoint app.bsky.feed.getFeedSkeleton do AT Protocol. Ele deve rodar continuamente e responder a requisições de assinatura do relay do Bluesky. O servidor precisa do seguinte:

  • Runtime Node.js ou Python: A maioria dos geradores é construída com Node.js 18+ ou Python 3.10+.
  • Suporte a WebSocket: O gerador deve manter uma conexão WebSocket persistente com o relay do Bluesky para atualizações em tempo real.
  • URL pública: O Bluesky precisa alcançar seu gerador via uma URL HTTPS pública com um certificado TLS válido.
  • Banco de dados: Um banco de dados SQLite ou PostgreSQL para armazenar estado de assinatura e postagens em cache.
  • Garantia de uptime: O gerador deve estar disponível 24/7. Inatividade faz o feed desaparecer dos clientes Bluesky.

Plataformas de hospedagem gratuita geralmente limitam essas capacidades. Por exemplo, as funções serverless da Vercel têm um tempo limite de 10 segundos, muito curto para conexões WebSocket. O plano gratuito da Railway desliga após 30 minutos de inatividade. Planos pagos removem essas restrições.

Visão Geral dos Provedores de Hospedagem Gratuita

As opções gratuitas mais comuns são Vercel, Railway e o plano gratuito do Fly.io. Cada uma tem limitações específicas:

  • Vercel: 100 GB de largura de banda por mês, 60 requisições por segundo, mas sem suporte a WebSocket persistente no plano hobby. Você precisa usar um wrapper que consulta o relay em vez de manter uma conexão ao vivo.
  • Railway: 500 horas de execução por mês, 1 GB de RAM, 1 vCPU. O plano gratuito desliga após 30 minutos de inatividade. Você pode usar um cron job para mantê-lo ativo, mas isso consome horas.
  • Fly.io: 3 VMs compartilhadas com 256 MB de RAM cada, 3 GB de armazenamento persistente. Sem plano gratuito para domínios personalizados. WebSocket funciona, mas a pouca RAM pode causar travamentos sob carga.

Visão Geral dos Provedores de Hospedagem Paga

Opções pagas incluem AWS EC2, DigitalOcean Droplets, Linode e Hetzner. Eles oferecem recursos dedicados e controle total:

  • AWS EC2 t2.micro: 1 vCPU, 1 GB RAM, 30 GB de armazenamento EBS. Custa cerca de $8,50 por mês sob demanda. Você obtém um IP estático e suporte total a WebSocket.
  • DigitalOcean Basic Droplet: 1 vCPU, 1 GB RAM, 25 GB SSD. Custa $6 por mês. Inclui IP público e backups automáticos.
  • Hetzner CX11: 1 vCPU, 2 GB RAM, 20 GB SSD. Custa €3,99 por mês. Excelente custo-benefício para feeds em produção.

Configuração Passo a Passo para Hospedagem Gratuita

Esta seção mostra como implantar um gerador de feed no plano gratuito do Railway. O Railway é a opção gratuita mais prática porque suporta processos persistentes e conexões WebSocket.

Implantação no Railway (Plano Gratuito)

  1. Fork do template do gerador de feed do Bluesky
    Acesse github.com/bluesky-social/feed-generator e clique em Fork. Isso cria sua própria cópia do template oficial.
  2. Crie uma conta no Railway e um projeto
    Cadastre-se em railway.app com sua conta do GitHub. Clique em New Project e selecione Deploy from GitHub repo. Escolha seu repositório fork do gerador de feed.
  3. Defina as variáveis de ambiente
    No painel do Railway, vá em Variables. Adicione FEEDGEN_HOST=0.0.0.0, FEEDGEN_PORT=3000 e DATABASE_URL=sqlite:///data/feedgen.db. Para o endpoint de assinatura, adicione SUBSCRIPTION_ENDPOINT com a URL do seu relay do Bluesky.
  4. Configure o cron job keep-alive
    Para evitar que o plano gratuito desligue, adicione um cron job que pingue seu gerador a cada 20 minutos. Use um serviço gratuito como cron-job.org para enviar uma requisição GET para sua URL do Railway a cada 20 minutos.
  5. Verifique a implantação
    Abra o domínio gerado pelo Railway em um navegador. Você deve ver uma resposta JSON com os endpoints did e feed. Em seguida, vá nas configurações do Bluesky e adicione sua URL de feed para testá-lo.

Configuração Passo a Passo para Hospedagem Paga

Para feeds em produção, use um Droplet da DigitalOcean. Isso oferece controle total e sem desligamento.

Implantação em um Droplet da DigitalOcean ($6/mês)

  1. Crie um Droplet com Docker
    No painel de controle da DigitalOcean, clique em Create Droplet. Escolha Ubuntu 22.04 com Docker pré-instalado. Selecione o plano de $6/mês (1 GB RAM, 1 vCPU). Adicione sua chave SSH para acesso seguro.
  2. Clone o repositório do gerador de feed
    Conecte-se via SSH ao seu Droplet: ssh root@seu_ip_do_droplet. Depois execute git clone https://github.com/bluesky-social/feed-generator.git e cd feed-generator.
  3. Configure as variáveis de ambiente
    Crie um arquivo .env com FEEDGEN_HOST=0.0.0.0, FEEDGEN_PORT=3000 e DATABASE_URL=sqlite:///data/feedgen.db. Adicione seu endpoint de assinatura do relay do Bluesky.
  4. Construa e execute o container Docker
    Execute docker compose up -d --build. Isso constrói a imagem e inicia o gerador em modo detached. Verifique os logs com docker compose logs -f.
  5. Configure um domínio personalizado com HTTPS
    Na DigitalOcean Networking, adicione um domínio e aponte um registro A para o IP do seu Droplet. Use Nginx como proxy reverso com Certbot para obter um certificado TLS gratuito do Let’s Encrypt.

Erros Comuns e Problemas

Gerador de Feed Mostra ‘Feed Offline’ Após a Implantação

Isso geralmente acontece porque o gerador não consegue manter uma conexão WebSocket com o relay do Bluesky. Em planos gratuitos, verifique se a plataforma encerra conexões inativas. No Railway, defina FEEDGEN_HOST=0.0.0.0 e certifique-se de que o cron job mantenha o processo ativo. Em Droplets pagos, verifique se a porta 3000 está aberta no firewall: sudo ufw allow 3000.

Gerador Fica Sem Memória e Trava

Os geradores de feed do Bluesky armazenam postagens em cache na memória. Planos gratuitos com 256 MB de RAM (Fly.io) travam após armazenar algumas centenas de postagens. Mude para um plano pago com pelo menos 1 GB de RAM. Alternativamente, reduza o tamanho do cache definindo CACHE_SIZE=100 nas variáveis de ambiente.

Domínio Personalizado Não Aceito pelo Bluesky

O Bluesky exige um certificado TLS válido no domínio personalizado. Plataformas de hospedagem gratuita que oferecem domínios personalizados apenas em planos pagos. Use o DNS do Cloudflare com modo SSL Full (strict) para obter um certificado gratuito. Aponte seu domínio para o IP da plataforma gratuita e ative SSL/TLS no Cloudflare.

Tabela Comparativa: Hospedagem Gratuita vs Paga

Item Plano Gratuito (Railway) Plano Pago (DigitalOcean)
Custo mensal $0 $6
CPU 1 vCPU compartilhado 1 vCPU dedicado
RAM 1 GB 1 GB
Armazenamento persistente Sim, 1 GB 25 GB SSD
Suporte a WebSocket Sim, mas timeout de inatividade após 30 min Sim, sem timeout
Domínio personalizado com HTTPS Não no plano gratuito Sim, com Certbot
Garantia de uptime Nenhuma (desliga) 99,99% SLA
Melhor para Feeds de teste pessoais Feeds em produção

Conclusão

Agora você entende os trade-offs entre hospedagem gratuita e paga para geradores de feed do Bluesky. Planos gratuitos funcionam para experimentos pessoais de baixo tráfego, mas exigem soluções alternativas de keep-alive e não podem usar domínios personalizados. Planos pagos a partir de $6 por mês oferecem recursos dedicados, conexões WebSocket persistentes e uptime profissional.

Para um feed em produção que atenda mais de 100 usuários, escolha um Droplet da DigitalOcean ou Hetzner CX11. Implante com Docker e configure um domínio personalizado com Let’s Encrypt. Monitore o desempenho do seu feed usando as estatísticas integradas do Bluesky em Configurações > Moderação > Geradores de Feed.

Como dica avançada, configure um endpoint de health check que retorne HTTP 200 e use o UptimeRobot para monitorá-lo a cada 5 minutos. Assim você recebe alertas antes que seu feed fique offline.