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/9596fdaf255bb6fc4a9015e21e80bd77 to your computer and use it in GitHub Desktop.

Select an option

Save denoww/9596fdaf255bb6fc4a9015e21e80bd77 to your computer and use it in GitHub Desktop.
turbgate — instalador Linux (Debian/Ubuntu/derivados — mini-PC genérico)

🐧 Instalador turbgate — Linux (Debian / Ubuntu / derivados)

Pra mini-PC Linux genérico (Intel NUC, mini-server x86, qualquer máquina rodando Ubuntu/Debian/Mint/Pop!_OS) que vai servir de gateway/varredor numa portaria.

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

⚡ 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 .deb certo + instala via apt + faz handshake mTLS com ERP + sobe service. Em ~1min aparece no modal Tunnels Ativos.


O que você precisa em mãos

  • Máquina rodando Ubuntu 20.04+ / Debian 11+ / Mint 20+ / Pop!_OS (qualquer derivado Debian recente)
  • Acesso root via sudo (senha do usuário com permissão)
  • 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>

Em ~30-60 segundos o script:

  1. Detecta arquitetura (amd64 ou arm64) automaticamente
  2. Baixa o .deb mais recente do mirror
  3. Roda apt install (instala como service systemd)
  4. Faz POST no ERP com o token → recebe cert mTLS + cliente_id descoberto
  5. Grava /etc/turbgate/{cert,key,ca}.pem + turbgate.yaml
  6. Habilita e inicia o service: systemctl enable --now turbgate

Aceita também <cliente_id> direto (ex: ... bash -s -- 51) como compat — útil quando você sabe o ID e não quer copiar o token.

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). Mesmo comando funciona em Linux/macOS/Windows:

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 — basta clicar Copiar e colar no terminal.

Se conectou, pronto — entrega pro cliente.

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

Mesmo comando do passo 2 — é idempotente. Reinstala o .deb, mantém config e cert, faz restart do service:

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

Ou direto via apt:

sudo curl -fsSL https://turbgate.botbox.info/turbgate_$(dpkg --print-architecture).deb -o /tmp/turbgate.deb
sudo apt install -y --reinstall /tmp/turbgate.deb
sudo systemctl restart turbgate

❌ Desinstalar

sudo systemctl stop turbgate
sudo apt 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 (não escreve em arquivo)

🆘 Deu problema?

Sintoma O que checar
curl: command not found sudo apt install -y curl e roda o 1-liner de novo
arquitetura não suportada Só amd64 (x86_64) e arm64 (aarch64) suportados. Roda uname -m pra ver
ERRO: ERP rejeitou: token_invalido Token errado ou foi regenerado no ERP. Pede o token atual pro gestor
turbgate.service em loop (Restart=always) Veja log: sudo journalctl -u turbgate -n 50 --no-pager. Comum: firewall bloqueando porta 7000. Testa nc -zv turbgate.botbox.info 7000
SSH externo não conecta Self-tunnel demora ~30s pra abrir. Olha journalctl -u turbgate | grep self-tunnel — porta certa aparece lá. Se ainda assim falhar, o firewall do cliente bloqueia saída na porta dinâmica — confere com TI dele
apt install reclama de versão antiga Use apt install -y --reinstall ./turbgate_*.deb (force reinstall)

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