Pra portaria que usa Raspberry Pi como mini-PC barato. Funciona em qualquer Pi rodando Raspberry Pi OS (ex-Raspbian) — 32 ou 64 bits.
Tempo total: ~10 min (incluindo gravar microSD se for instalação nova).
curl -fsSL https://turbgate.botbox.info/install.sh | sudo bash -s -- <token>Substitui <token> pelo que copiou do ERP (onde achar). Detecta arch arm64/armhf + baixa o .deb + instala via apt + sobe service. Em ~1min aparece no modal Tunnels Ativos.
Raspberry novo, sem OS gravado? Vai pro Passo 1 — Gravar Raspberry Pi OS abaixo.
- Raspberry Pi 3, 4 ou 5 (com fonte adequada — Pi 4 = USB-C 3A; Pi 5 = USB-C 5A; Pi 3 = micro-USB 2.5A)
- MicroSD ≥8 GB classe 10 (Sandisk/Kingston) — ou SSD USB se quiser mais durabilidade
- Cabo de rede (Ethernet) ou Wi-Fi configurado
- O
<token>gerado no ERP (ver "Onde achar o token" abaixo)
- Logado no ERP, vai em Equipamentos do cliente
- Menu ⋮ → "Ver Tunnels Ativos"
- Modal abre com seção "Token de instalação"
- Clica em Copiar — token de 32 caracteres tipo
cc2d85d7a1... - 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.
Se o Pi já tem Raspberry Pi OS rodando, pula pro Passo 2.
Funciona em Windows / macOS / Linux:
- Baixa em https://www.raspberrypi.com/software/ e instala (~80 MB).
- Plugue o microSD novo no notebook (via adaptador USB).
- Abre o Imager → Choose Device → escolhe seu modelo (Pi 3 / 4 / 5).
- Choose OS → "Raspberry Pi OS (other)" → Raspberry Pi OS Lite (64-bit) (não precisa desktop).
- Choose Storage → escolhe o microSD.
- ⚙️ Edit Settings (importante, evita ter que conectar monitor!):
- Set hostname — qualquer nome (ex:
raspi-portaria) - Set username and password — anota a senha! (default era
pi/raspberry, mas hoje é obrigatório customizar) - Configure wireless LAN se for usar Wi-Fi
- Enable SSH ✅ (com password authentication)
- Set hostname — qualquer nome (ex:
- Save → Yes → Yes (escreve no microSD, ~5 min).
- Ejeta o cartão pelo Explorer/Finder antes de tirar do adaptador USB.
- Espeta o microSD no slot do Pi (contatos dourados pra cima), liga na tomada e cabo de rede. Aguarda ~1-2 min até bootar.
⚠️ Não tire o microSD com o Pi ligado — corrompe o filesystem. Sempresudo poweroffprimeiro.
1. Acha o IP do Pi na rede do cliente.
Linux / macOS (terminal):
nmap -sn 192.168.1.0/24 | grep -B2 -i 'raspberry\|raspi'Windows:
- 🖥️ Advanced IP Scanner (gratuito, GUI): https://www.advanced-ip-scanner.com/br/ → "Scan" → procura linha com fabricante "Raspberry Pi" ou hostname configurado.
- 💻 Sem instalar (PowerShell):
1..254 | ForEach-Object { Test-Connection -Count 1 -Quiet -TimeoutSeconds 1 "192.168.1.$_" } | Out-Null Get-NetNeighbor -AddressFamily IPv4 | Format-Table IPAddress, LinkLayerAddress
Ou olha no painel do roteador por hostname (raspberrypi ou o que você definiu) ou MAC começando com b8:27:eb, dc:a6:32, e4:5f:01, 2c:cf:67 (oficiais Raspberry Pi).
2. Conecta por SSH (mesmo comando Linux/macOS/Windows 10+/Windows 11):
ssh <seu_user>@<ip-do-raspberry>
# senha que você definiu no Imager3. 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:
- Detecta arquitetura (
armhf32-bit ouarm6464-bit) automaticamente - Baixa o
.debarm64 do mirror (Pi 3/4/5 de 64 bits) - Roda
apt install(instala como service systemd) - Faz POST no ERP com o token → recebe cert mTLS + cliente_id descoberto
- Grava
/etc/turbgate/{cert,key,ca}.pem+turbgate.yaml - Habilita e inicia o service:
systemctl enable --now turbgate
Se você usou Raspberry Pi OS 32-bit (Pi 3 antigos), o
install.shaceitaarmhftambém via mesmo comando.
4. Confirma que o turbgate subiu:
sudo systemctl status turbgate
sudo journalctl -u turbgate -n 20 --no-pagerTem 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 ..."
💡 No final do
install.shaparece o ID do tunnel (MAC) do Raspberry — esse é o Identificador do tunnel no modal Tunnels Ativos do ERP. Gestor pode colar no campo "Permitir um tunnel específico" do equipamento.
5. Confirma SSH externo (a partir do seu notebook, fora da rede do cliente):
ssh -p <porta> <seu_user>@turbgate1.botbox.infoA porta exata aparece no log do passo 4 ("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.
Mesmo comando do passo 3 — é 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>sudo systemctl stop turbgate
sudo apt remove -y turbgate
sudo rm -rf /etc/turbgate /var/lib/turbgate # opcional — remove cert e logs| 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 |
| Sintoma | O que checar |
|---|---|
| Pi não boota (LED vermelho fixo, verde não pisca) | Fonte fraca? Pi 4 precisa USB-C 3A. Pi 5 precisa 5A oficial. MicroSD bem encaixado? |
ssh: Connection refused |
Esperou ~2 min de boot? Habilitou SSH no Imager (Edit Settings)? Tenta ping <ip> antes |
arquitetura não suportada |
uname -m deve mostrar aarch64 (64-bit) ou armv7l (32-bit). Pi muito velho com OS 32-bit pode não ter .deb armhf — fala com suporte |
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 do cliente bloqueando saída na 7000. Testa nc -zv turbgate.botbox.info 7000 |
| SSH externo não conecta | Self-tunnel demora ~30s pra abrir. journalctl -u turbgate | grep self-tunnel mostra a porta certa |
Manda o output do journalctl -u turbgate -n 50 pro grupo do suporte que a gente resolve junto.