Executando verificação de segurança...
4

Pitch: 🚇Crom-me: Como criei minha própria infraestrutura de Túneis e Subdomínios usando Go - Opensource - Serviço FREE alternativo ao ngrok

Olá, pessoal! Gostaria de compartilhar com vocês o Crom-me, um projeto que venho desenvolvendo para resolver uma dor recorrente no meu workflow: a necessidade de expor serviços locais de forma rápida e segura, mantendo o controle total sobre os dados e o roteamento.

O projeto está atualmente em Beta (v0.3). Ele já está funcional, mas decidi abrir o código e a estratégia agora porque quero ouvir a opinião de desenvolvedores que lidam com infraestrutura para saber como evoluir o projeto da melhor forma.

🚀 O que é o Crom-me?

O Crom-me é um ecossistema de conectividade open-source. Ele atua como uma alternativa leve a ferramentas como ngrok ou Cloudflare Tunnels. Eu o criei para servir de base para os meus outros projetos hospedados no ecossistema crom.run, permitindo que eu teste novas funcionalidades e integre webhooks sem depender de serviços externos limitados.

O sistema se divide em três componentes principais:

  1. Portal (crom.me): Onde gerencio meus subdomínios fixos e acompanho a telemetria básica.
  2. Infraestrutura de Túneis: O motor que permite o redirecionamento de tráfego via subdomínios dinâmicos.
  3. CROM-CLI: Uma ferramenta em Go que permite instalar e subir um túnel em um único comando.

🛠️ A Arquitetura Técnica

Escolhi Go para o coração do projeto pela sua eficiência nativa com concorrência e rede.

Pontos-chave da implementação:

  • WebSocket Multiplexing: Utilizamos WebSockets (WSS) para manter a conexão persistente entre o meu terminal (local) e a VPS (remota). O motor multiplexa múltiplas requisições HTTP sobre esse túnel.
  • Identidade via GitHub: Usei OAuth do GitHub para autenticar o CLI. Isso garante uma barreira de entrada contra abusos e facilita a gestão de usuários sem precisar de um sistema de senhas complexo.
  • Edge & DNS (Cloudflare): O tráfego passa pela malha da Cloudflare antes de chegar no meu Nginx. Isso me dá SSL/TLS v1.3 automático e proteção na borda.
  • Docker-First: Todo o ambiente (API, Banco Postgres e Nginx) roda em containers, o que facilitou muito o deploy na VPS e a portabilidade.

💡 Por que construir isso do zero?

A maior motivação foi o "dogfooding". Eu precisava de uma forma estável de testar meus outros projetos (SaaS de e-commerce e gestão médica) que rodam no crom.run.

Depender de planos gratuitos de terceiros era frustrante: sessões que expiravam, portas bloqueadas e URLs que mudavam toda hora. Com o Crom-me, eu criei a ferramenta que eu precisava para validar meus próprios deploys e mostrar previews de forma profissional.

🤝 Pedido de Feedback (Para os Seniores e DevOps)

O projeto está em beta e eu sei que há muito o que melhorar. Gostaria da opinião técnica de quem puder dar uma olhada:

  • Protocolo: WebSockets atendem bem, mas para alta carga, deveríamos considerar gRPC ou talvez tunelamento via SSH puro?
  • Segurança: Quais as melhores práticas para isolar o tráfego de subdomínios dinâmicos e evitar que um túnel "suje" a reputação do IP da VPS?
  • Evolução: Atualmente, foco em simplicidade. O que mais faz falta para você em uma ferramenta de túnel? Inspeção de pacotes via CLI? Logs persistentes?
  • Prosseguimento: Qual a melhor forma de escalar esse backend para suportar múltiplos nós de saída sem perder a centralização do auth?

🔗 Teste e Contribua

Se você quiser testar e me dar um feedback real:

Qualquer bug reportado ou sugestão de arquitetura é extremamente valiosa. Estou criando isso para uso pessoal, mas quero que seja uma ferramenta de referência para quem, assim como eu, valoriza a autonomia no desenvolvimento.

☕ Apoie o Desenvolvimento Open-Source Nacional (Não falo só de mim aqui)

A revolução da "IA Soberana" e do "Local-First" não acontece apenas no Vale do Silício ou na Europa. Aqui no Brasil, através da organização Crom, também estou focado em construir e manter projetos que devolvem o controle ao desenvolvedor (além de trazer análises aprofundadas como esta para o TabNews e comunidade).

Manter o desenvolvimento de ferramentas open-source e a produção de conteúdo técnico denso exige tempo, dedicação e, claro, muito ☕ e 🍀. Se este artigo gerou valor para você, ou se você apoia a iniciativa de construirmos tecnologia de base independente por aqui, qualquer apoio é bem-vindo.

Sim eu uso IA, não como meu amigo ou faz tudo, mas como ferramenta, e recomendo o mesmo a você.

Estou idealizando ainda um módulo dedicado de donations na plataforma da Crom, mas enquanto ele não entra no ar, estou aceitando apoios via PIX para manter a infraestrutura rodando:

Chave PIX:
[email protected]

⚠️ Importante:
Se você realizar um apoio, por favor, envie o comprovante (pode ser apenas com seu user do GitHub ou TabNews no assunto/corpo) para o e-mail: [email protected].

O Futuro: Assim que eu lançar a implementação oficial de donate/invest da Crom, farei questão de migrar manualmente esses apoios, transformando-os em créditos, badges de early supporter ou garantindo os devidos agradecimentos na plataforma.

Muito obrigado por ler até aqui e pela força! 🗿🍷


Juan Cândido (MrJ)
Desenvolvedor e Fundador da Crom

Carregando publicação patrocinada...