Projetos

O que eu já construí: homelab com 39 serviços e zero porta aberta, um servidor que virou console de sala, e este site.

Cada projeto aqui tem o mesmo esqueleto: qual era o problema, o que eu fiz, com o que fiz, e o que deu para medir depois. Se não der para verificar, não entra.


Homelab: 39 serviços, zero porta aberta

O problema. Rodar dezenas de serviços em casa (automação, banco de dados, mídia, ferramentas de análise) e alcançá-los de fora sem transformar a rede doméstica em superfície de ataque.

O que eu fiz. Montei um servidor Ubuntu com todos os serviços em stacks Docker separadas, cada uma versionada e ligável de forma independente. A exposição para a internet é feita por túnel de saída da Cloudflare, com um proxy reverso na frente para roteamento e TLS.

O resultado. Nenhuma porta encaminhada no roteador, inclusive SSH fica fechado para fora. O IP residencial nunca aparece: todo o tráfego chega pela borda da Cloudflare. Serviços novos entram em minutos, porque o padrão já está pronto.

Stack. Ubuntu 24.04, Docker Compose, Cloudflare Tunnel, Nginx Proxy Manager, n8n.


Um servidor que virou console de sala

O problema. A GPU boa estava no servidor, no escritório. A TV boa estava na sala. Comprar um segundo PC para jogar na sala seria gastar caro para duplicar hardware que já existia ocioso.

O que eu fiz. Transformei o servidor em host de jogos com streaming de baixa latência para a TV, usando a GPU dedicada dentro de container e um cliente leve na sala.

O resultado. Jogo na TV com a placa que já estava paga, sem hardware novo. E três problemas específicos resolvidos no caminho, que renderam o artigo abaixo.

Stack. Wolf (Games on Whales), NVIDIA RTX 3080, Proton, Docker com passagem de GPU.

Ler o artigo completo


Este site

O problema. Eu precisava de um lugar meu para publicar, com newsletter, comentários e área de membros, sem alugar plataforma e sem depender de ninguém para mexer.

O que eu fiz. Subi o Ghost como mais uma stack Docker no meu servidor, com banco isolado do meu outro site, roteado pelo mesmo túnel Cloudflare que já existia. O container não publica nenhuma porta no host: o proxy chega nele pela rede interna do Docker.

O detalhe que interessa a quem trabalha com mídia. O redirecionamento de www para o domínio raiz preserva a query string. Parece bobagem até você perceber que, sem isso, todo clique que chega em www com UTM entra no seu analytics como tráfego direto. É o tipo de erro silencioso que faz relatório mentir por meses.

Stack. Ghost 6, MySQL 8, Docker Compose, Cloudflare Tunnel, regra de redirecionamento na borda.