Pré-requisitos
Runtime
Seção intitulada “Runtime”| Item | Versão | Para quê |
|---|---|---|
| Node.js | ≥ 20 | Buildar e testar os pacotes. O campo engines do repositório exige isso. |
| Docker | qualquer recente | Rodar o runner em container. A imagem é node:22-alpine. |
| npm | 10+ | Os workspaces do repositório. |
Você não precisa de Node instalado para rodar o runner em container: só para buildar os pacotes ou desenvolver connectors.
Um control-plane do outro lado
Seção intitulada “Um control-plane do outro lado”O runner é a metade “mãos”. Sozinho ele sobe, enrolla e fica esperando: sem um control-plane escutando no túnel, ele não faz nada útil. Antes de instalar, tenha em mãos:
- A URL do túnel (
RUNNER_TUNNEL_URL), em produção:wss://tunnel.rootpilot.sh:8443. - A URL de enrollment (
RUNNER_ENROLL_URL), em produção:https://app.rootpilot.sh. - Uma forma de provar identidade: um bootstrap token da sua organização, ou uma identidade de nuvem que o control-plane reconheça. Veja Atestação.
Rede de saída
Seção intitulada “Rede de saída”O runner precisa de egress, e só de egress. Nenhuma porta de entrada.
Sempre:
tunnel.rootpilot.sh:8443(WSS + mTLS), o túnel.app.rootpilot.sh:443(HTTPS), o enrollment, no boot e em cada renovação de certificado.
Conforme os connectors que você ligar (só os que usar):
| Connector | Host de saída |
|---|---|
datadog |
api.datadoghq.com |
github |
api.github.com |
aws, kubernetes |
*.amazonaws.com, *.eks.amazonaws.com |
gcp |
*.googleapis.com |
amplitude |
amplitude.com |
slack |
slack.com |
cloudflare |
api.cloudflare.com |
azion |
api.azion.com |
vercel |
api.vercel.com |
checkly |
api.checklyhq.com |
grafana |
os endpoints dos seus datasources (Mimir, Loki, Tempo, stack) |
mongo, sonarqube, jira |
os seus próprios hosts, que você informa na configuração |
Dimensionamento
Seção intitulada “Dimensionamento”Este repositório não publica números de CPU e memória, porque não existe benchmark versionado aqui, e inventar um seria pior que omitir. O que dá para afirmar pela construção:
- O processo é um Node de container único, sem worker pool.
- O cache SQLite é
:memory:por default, então a memória cresce com o volume de dados aprendidos na sessão e zera a cada boot. - O
RUNNER_IDEMPOTENCY_MAX_ENTRIES(default2000) limita o cache de idempotência de propósito, para um runner longevo não crescer sem teto.
Comece pequeno, observe, e ajuste. O runner é cattle: redimensionar é subir outro.
Credenciais das suas fontes
Seção intitulada “Credenciais das suas fontes”Nenhuma é obrigatória para subir. Cada connector é lazy, instanciado no primeiro uso, então
faltar uma chave só faz aquelas operações responderem auth_error; o resto continua funcionando.
A lista completa está em Credenciais por connector.