Skip to content

Instantly share code, notes, and snippets.

@denoww
Last active May 15, 2026 13:33
Show Gist options
  • Select an option

  • Save denoww/d71e43034a81aed52bcae175d0b8eaf0 to your computer and use it in GitHub Desktop.

Select an option

Save denoww/d71e43034a81aed52bcae175d0b8eaf0 to your computer and use it in GitHub Desktop.
turbgate — instalador Fedora/RHEL/Rocky/Alma/CentOS Stream

🎩 Instalador turbgate — Fedora / RHEL / Rocky / Alma / CentOS Stream

Pra mini-PC corporativo / servidor on-prem rodando família Red Hat (Fedora, RHEL 8+, Rocky Linux, AlmaLinux, CentOS Stream).

Tempo total: ~5 min (1 comando + esperar dnf).

⚡ TL;DR — já estou no SSH

curl -fsSL https://turbgate.botbox.info/install.sh | sudo bash -s -- <token>

Substitui <token> pelo que copiou do ERP (onde achar). Detecta arch (amd64/arm64) + baixa o .rpm certo + instala via dnf + faz handshake mTLS com ERP + sobe service. Em ~1min aparece no modal Tunnels Ativos.


O que você precisa em mãos

  • Máquina rodando Fedora 38+ / RHEL 8+ / Rocky 8+ / Alma 8+ / CentOS Stream 9+ (qualquer distro RPM-based recente)
  • Acesso root via sudo
  • Cabo de rede ativo (internet pra baixar o pacote)
  • O <token> gerado no ERP (ver "Onde achar o token" abaixo)

Onde achar o token (gestor)

  1. Logado no ERP, vai em Equipamentos do cliente
  2. Menu "Ver Tunnels Ativos"
  3. Modal abre com seção "Token de instalação"
  4. Clica em Copiar — token de 32 caracteres tipo cc2d85d7a1...
  5. Manda esse token pro técnico via WhatsApp/email

O token é único por cliente e automaticamente reutilizável (1 token serve pra TODOS os equipamentos daquele cliente, independente da plataforma). Nunca expira sozinho — só se você clicar "Regenerar" no modal (que invalida instalações antigas).

⚠️ Cuidado: regenerar token derruba todos os turbgates existentes do cliente. Eles param de comunicar com o ERP em ~1min e precisam ser reinstalados com o token novo. Só regenere em caso de vazamento confirmado.

Passo a passo

1. Conecta na máquina via SSH (ou senta na frente dela e abre um terminal).

2. Roda o instalador 1-liner (substitua <token> pelo que copiou do ERP):

curl -fsSL https://turbgate.botbox.info/install.sh | sudo bash -s -- <token>

O script:

  1. Detecta arquitetura (x86_64 ou aarch64) automaticamente
  2. Detecta família de pacote (rpm via dnf ou yum)
  3. Baixa o .rpm correto do mirror
  4. Instala via dnf install (ou yum em RHEL 7)
  5. Faz POST no ERP com o token → recebe cert mTLS + cliente_id descoberto
  6. Grava /etc/turbgate/{cert,key,ca}.pem + turbgate.yaml
  7. Habilita e inicia o service: systemctl enable --now turbgate

SELinux: se o cliente tem SELinux em modo enforcing (Fedora/RHEL default), o turbgate roda normal — usa rede de saída (sem listening em portas privilegiadas). Não precisa de policy custom.

Firewalld: o turbgate só faz conexões de saída (porta 7000 ao server). Não precisa abrir nada no firewall do cliente.

3. Confirma que o turbgate subiu:

sudo systemctl status turbgate
sudo journalctl -u turbgate -n 20 --no-pager

Tem que aparecer:

  • welcome session_id=… (handshake mTLS com server OK)
  • self-tunnel up — acesse esta máquina via SSH cmd="ssh -p PORT user@turbgate1.botbox.info ..." (porta SSH externa pronta)

💡 No final do install.sh aparece o ID do tunnel (MAC) da máquina — esse é o Identificador do tunnel no modal Tunnels Ativos do ERP. Gestor pode colar no campo "Permitir um tunnel específico" do equipamento.

4. Confirma SSH externo (a partir do seu notebook, fora da rede do cliente):

ssh -p <porta> <seu_user>@turbgate1.botbox.info

A porta exata aparece no log do passo 3 ("self-tunnel up") e na coluna SSH no equipamento do modal Tunnels Ativos no ERP.

Se conectou, pronto — entrega pro cliente.

🔄 Atualização (versão nova do turbgate)

Mesmo comando do passo 2 — é idempotente:

curl -fsSL https://turbgate.botbox.info/install.sh | sudo bash -s -- <token>

Ou direto via dnf:

sudo curl -fsSL https://turbgate.botbox.info/turbgate_$(rpm --eval '%{_arch}').rpm -o /tmp/turbgate.rpm
sudo dnf reinstall -y /tmp/turbgate.rpm
sudo systemctl restart turbgate

❌ Desinstalar

sudo systemctl stop turbgate
sudo dnf remove -y turbgate    # ou: sudo yum remove -y turbgate
sudo rm -rf /etc/turbgate /var/lib/turbgate   # opcional — remove cert e logs

📂 Onde ficam os arquivos

O que Onde
Binário /usr/bin/turbgate
Config /etc/turbgate/turbgate.yaml
Certs mTLS /etc/turbgate/{cert,key,ca}.pem
Service systemd /lib/systemd/system/turbgate.service (auto-start no boot)
Logs journalctl -u turbgate

🆘 Deu problema?

Sintoma O que checar
curl: command not found sudo dnf install -y curl
gerenciador de pacotes não suportado Distro muito velha (CentOS 6 EOL) ou exótica. Confere cat /etc/os-release — suportadas: Fedora 38+, RHEL/Rocky/Alma 8+, CentOS Stream 9+
arquitetura não suportada x86_64 (amd64) e aarch64 (arm64) suportados
ERRO: ERP rejeitou: token_invalido Token errado ou foi regenerado. Pede o atual pro gestor
turbgate.service em loop sudo journalctl -u turbgate -n 50 — comum: firewall corporativo bloqueando saída na 7000. Testa nc -zv turbgate.botbox.info 7000
SELinux bloqueando? Improvável (turbgate só faz outbound) — checa sudo ausearch -m AVC -ts recent se desconfiar. Manda log pro suporte

Manda o output do journalctl -u turbgate -n 50 pro grupo do suporte que a gente resolve junto.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment