CPUs 2022+, DDR5, NVMe · Sem KYC · Pague com cripto: BTC, USDT, USDC, ETH, SOL, LTC, XMR
Idioma: Português
Pedir bare metal

Guia · GitHub Actions em bare metal · documentação lida em 1 de novembro de 2026

Como configuro um runner auto-hospedado do GitHub Actions em um servidor dedicado alugado?

Registre um runner em uma máquina Linux alugada, execute-o como serviço sob o próprio usuário e mantenha código não confiável longe dele. Todos os comandos e regras abaixo vêm da documentação do GitHub.

Última atualização: · 11 min de leitura

Resposta rápida

Como configuro um runner auto-hospedado do GitHub Actions em um servidor dedicado alugado?

Para configurar um runner auto-hospedado do GitHub Actions em um servidor dedicado alugado, crie primeiro um usuário não-root. Depois abra Settings → Actions → Runners → New self-hosted runner e execute os comandos que o GitHub mostra, depois sudo ./svc.sh install para mantê-lo em execução. Use-o apenas em repositórios privados. Servidores Lumenfer começam em US$ 91,65 por 30 dias, pagos em cripto e sem KYC.

O que o runner precisa, conforme a referência do GitHub

RedeHTTPS de saída na porta 443 para github.com, api.github.com e *.actions.githubusercontent.com; pelo menos 70 kbit/s em cada direção
Sistemas LinuxUbuntu 20.04 ou posterior e Red Hat Enterprise Linux 8 ou posterior, entre outros, em x64
Jobs em contêinerUma máquina Linux com Docker instalado
Atualizações do runnerAutomáticas quando um job é atribuído; você precisa atualizar em até 30 dias após um novo lançamento
Limites de jobsAté 5 dias por job; um job na fila por 24 horas é cancelado
Runners offlineRemovido após 14 dias sem conexão; runners efêmeros após 1 dia
Imagens em LumenferDebian 13, Debian 12, Ubuntu 24.04 LTS, AlmaLinux 10, Rocky Linux 10 e Proxmox VE 9
LoginYou log in as root over SSH. Paste a public key when ordering and password logins stay disabled, or skip it and receive a temporary root password with the server, to replace on your first login
SetupPoucos minutos depois que o pagamento é confirmado, e nunca mais de uma hora

O que eu preciso antes de instalar o runner?

Você precisa de direitos de administrador no GitHub e de root em uma máquina Linux. Para um runner de repositório, o GitHub exige que você seja o proprietário do repositório, um proprietário da organização ou um administrador do repositório. Um runner de toda a organização precisa de um proprietário da organização.

No lado do servidor, peça uma imagem Ubuntu 24.04 LTS ou Debian com sua chave pública SSH. Seu servidor entra no ar poucos minutos depois que o pagamento é confirmado, e a espera nunca passa de uma hora; o painel acompanha a preparação e depois mostra o endereço IP assim que a máquina está rodando. O endereço IP aparece no seu dashboard quando a máquina estiver pronta.

Escolha o tamanho pelo seu job mais pesado, não pela média. Nosso guia de hardware para servidores de build explica como compiladores e linkers usam núcleos e memória.

Posso usar um runner auto-hospedado em um repositório público?

Evite: o GitHub recomenda runners auto-hospedados apenas para repositórios privados. Qualquer pessoa pode fazer fork de um repositório público e abrir um pull request. Esse pull request pode executar código na sua máquina.

A referência de segurança do GitHub deixa claro o risco. Um runner pode ser comprometido de forma persistente por código de workflow não confiável. Esse código pode então alcançar segredos e o GITHUB_TOKEN. Segredos de ambiente e revisores obrigatórios não isolam a máquina em si.

  • Restrinja o token. Defina a permissão padrão de GITHUB_TOKEN como somente leitura para o conteúdo do repositório e conceda mais por job.
  • Evite gatilhos privilegiados. Nunca combine pull_request_target ou workflow_run com um checkout de código de pull request não confiável.
  • Agrupe seus runners. Runners de organização podem receber jobs de muitos repositórios. Grupos de runners mantêm um comprometimento dentro de um limite.
  • Mantenha segredos fora do disco. O GitHub pede que você minimize o material sensível armazenado no runner.

Como instalo o runner, passo a passo?

Estes passos seguem três páginas do GitHub Docs, sobre adicionar runners, executá-los como serviço e usá-los em workflows, lidas em 1º de novembro de 2026. Cada um roda via SSH.

  1. Peça o servidor com sua chave SSH

    Escolha Ubuntu 24.04 LTS ou Debian no checkout e cole sua chave pública. Os logins por senha ficam então desativados.

  2. Atualize o sistema e adicione um usuário para o runner

    Execute apt update && apt full-upgrade e depois crie um usuário sem privilégios, como gh-runner. Jobs nunca devem rodar como root.

  3. Instale o Docker somente se os jobs usarem containers

    O GitHub precisa do Docker no Linux para container actions e service containers. A documentação do Docker avisa que o grupo docker concede privilégios de nível root.

  4. Abra a página New self-hosted runner

    No repositório, vá em Settings → Actions → Runners → New self-hosted runner e escolha Linux e x64. As organizações usam primeiro New runner.

  5. Execute os comandos do GitHub como o usuário do runner

    Cole as linhas de download, checksum e ./config.sh --url … --token … na ordem mostrada. O token de registro expira após uma hora.

  6. Instale o runner como serviço

    Na pasta do runner, execute sudo ./svc.sh install gh-runner e depois sudo ./svc.sh start e sudo ./svc.sh status. Ele agora sobrevive a reinicializações.

  7. Aponte um workflow para ele

    Defina runs-on: [self-hosted, linux, x64]. Um runner precisa ter todos os labels listados para receber o job.

  8. Reforce as configurações do repositório

    Deixe o GITHUB_TOKEN como somente leitura por padrão e limite quais repositórios podem usar o runner. Depois execute um job de teste.

Passos 2, 5 e 6 no Ubuntu ou Debian (URL e token vêm da sua página New runner)
# step 2, as root: update and create the runner user
apt update && apt full-upgrade -y
adduser --disabled-password --gecos "" gh-runner

# step 5, as gh-runner, in the folder where you ran GitHub's download lines
./config.sh --url https://github.com/OWNER/REPO --token TOKEN
# for a runner that takes one job, then de-registers:
# ./config.sh --url https://github.com/OWNER/REPO --token TOKEN --ephemeral

# step 6, from the same folder, with sudo rights
sudo ./svc.sh install gh-runner
sudo ./svc.sh start
sudo ./svc.sh status
Passo 7: um job que roda no servidor alugado
permissions:
  contents: read

jobs:
  build:
    runs-on: [self-hosted, linux, x64]
    steps:
      - uses: actions/checkout@v7
      - run: make -j"$(nproc)" test

Devo usar runners efêmeros em um único servidor alugado?

Sim, para qualquer coisa além de código interno confiável: o GitHub recomenda runners efêmeros, que recebem um job e depois se desregistram. Adicione --ephemeral quando você executar config.sh. Sua própria automação então limpa o workspace e registra um runner novo.

O GitHub também oferece runners just-in-time. O endpoint REST POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig retorna uma configuração de um job. Para o registro clássico, POST /repos/{owner}/{repo}/actions/runners/registration-token retorna um token válido por uma hora.

Runners de um job no mesmo host físico não são um estado limpo. O GitHub avisa que reutilizar hardware para runners just-in-time pode expor informações do ambiente. Em bare metal, dê a cada job uma máquina virtual ou um container descartável.

  • Máquinas virtuais. Peça a imagem Proxmox VE e clone uma VM de template por job. Veja como montar um cluster Proxmox em servidores alugados.
  • Kubernetes. O Actions Runner Controller do GitHub é um operador Kubernetes que escala runners auto-hospedados. Veja como rodar Kubernetes em bare metal.
  • Logs. Um runner de um job não deixa nada para inspecionar depois, então o GitHub pede que você encaminhe os logs dele para armazenamento externo primeiro.

Quantos runners um servidor aguenta?

Um processo de runner recebe um job, então registre tantos runners quantos jobs paralelos você quiser, cada um em sua própria pasta com seu próprio serviço. Divida a máquina pelo seu job mais pesado. Uma divisão comum é um runner a cada 4 a 8 threads, com RAM para o pior passo de link.

A tabela relaciona cada plano a um ponto de partida razoável. Ajuste após uma semana observando htop e os tempos dos jobs.

Planos Lumenfer como hosts de CI runner

PlanoCPUNúcleosMemóriaDiscosA cada 30 diasBom começo
Lumen 6AMD EPYC 4244P6 núcleos / 12 threads32 GB DDR5 ECC2 × 960 GB NVMe$91.651 a 2 runners: lint, testes unitários, serviços pequenos
Lumen 8AMD Ryzen 7 9700X8 núcleos / 16 threads64 GB DDR52 × 1 TB NVMe$109.372 a 4 runners: builds em Go, Rust ou Java
Lumen 16AMD Ryzen 9 9950X16 núcleos / 32 threads128 GB DDR52 × 1.92 TB NVMe$205.274 a 8 runners, ou um build grande em C++
Lumen 24AMD EPYC 925424 núcleos / 48 threads256 GB DDR5 ECC2 × 1.92 TB NVMe$356.25VMs de runner no Proxmox, com memória ECC
Lumen 32AMD EPYC 935432 núcleos / 64 threads384 GB DDR5 ECC2 × 3,84 TB NVMe$749.67Um pool de runners para uma organização inteira

O que os runners hospedados pelo GitHub fazem que agora eu faço sozinho?

A máquina limpa, as atualizações e a recuperação: o GitHub torna você responsável pelo sistema operacional e por todo o restante do software.

  • Crescimento do disco. Workspaces, imagens Docker e caches se acumulam entre jobs. Agende uma limpeza, ou o NVMe enche durante um release.
  • Atualizações do runner. O runner se atualiza sozinho quando recebe um job. Se você registrar com --disableupdate, ainda precisa atualizar em até 30 dias.
  • Bloqueios. Não há console IPMI nem KVM-over-IP para clientes: você solicita reinicializações e reinstalações no painel e a equipe as executa. Teste mudanças de firewall com uma segunda sessão SSH aberta.
  • E-mails dos builds. SMTP de saída na porta 25 é bloqueado em todos os servidores e nunca é desbloqueado; as portas de submissão 465 e 587 para provedores de e-mail continuam abertas.
  • Dados. Backups não estão incluídos: mantenha cópias dos seus dados em outro lugar.

Na verificação de Lumenfer sobre 30 October 2026, vendedores de servidores dedicados informaram prazos de setup a partir de 30 minutos a 10 dias úteis, com mediana de 24 horas. Lumenfer fica no lado rápido: um host de runner entra no ar minutos depois da confirmação do pagamento, com uma hora como limite. Os custos são comparados minuto a minuto em runner auto-hospedado vs custo do GitHub-hosted, e cada plano está na página de preços da Lumenfer.

Qual plano deve hospedar meus runners?

Máquinas dedicadas, um cliente cada, cobradas de um saldo em cripto. Amsterdã (Países Baixos), Reykjavik (Islândia), Zurique (Suíça) e Bucareste (Romênia): todos os cinco planos nas quatro cidades, um preço em todo lugar.

Lumen 6

6 núcleos · 32 GB DDR5

US$ 91,65

3 months US$ 247,45 (−10%)6 months US$ 439,92 (−20%)1 year US$ 769,86 (−30%)

  • AMD EPYC 4244P (2024), 6 núcleos / 12 threads
  • 32 GB DDR5 ECC, 2 × 960 GB NVMe (RAID 1)
  • 30 TB por mês a 1 Gbit/s, 1 IPv4 + IPv6 /64
  • Bare metal, root via SSH, sem taxa de setup
  • MonoVM: $122.20 por mês para AMD EPYC 4244p, 6 núcleos / 32 GB / 2 X 480GB NVMe SSD
Pedir este servidor

Lumen 8

8 núcleos · 64 GB DDR5

US$ 109,37

3 months US$ 295,29 (−10%)6 months US$ 524,97 (−20%)1 year US$ 918,70 (−30%)

  • AMD Ryzen 7 9700X (2024), 8 núcleos / 16 threads
  • 64 GB DDR5, 2 × 1 TB NVMe (RAID 1)
  • 40 TB por mês a 1 Gbit/s, 1 IPv4 + IPv6 /64
  • Bare metal, root via SSH, sem taxa de setup
  • Privex: $145.83 por mês para AMD Ryzen 7 PRO 8700GE, 8 núcleos / 64 GB / 2x512GB NVMe (Gen4)
Pedir este servidor

Em todos os planos: 2022+ CPU · DDR5 · Somente NVMe · RAID 1 · IPv4 dedicado · Sem KYC

GitHub runner auto-hospedado em um servidor alugado: FAQ

Posso rodar o GitHub runner como root?

Não. Crie um usuário dedicado e instale o serviço para ele com sudo ./svc.sh install USERNAME, como mostra a página de serviço do GitHub. Um job rodando como root pode alterar o host para todos os jobs seguintes, e para você também.

O runner precisa de alguma porta de entrada?

A lista de requisitos de comunicação do GitHub indica HTTPS de saída na porta 443 para os domínios dele, além de pelo menos 70 kbit/s em cada direção. Na entrada, você pode fechar tudo exceto SSH. O runner abre todas as conexões sozinho, de saída.

Um servidor pode atender vários repositórios?

Sim, registre o runner no nível da organização e atribua-o a um grupo de runners. O GitHub avisa que runners de organização podem receber jobs de muitos repositórios, então um grupo limita até onde um job ruim chega.

O que acontece se meu servidor reiniciar ou ficar offline?

O serviço inicia de novo depois de um reboot. Os jobs ficam na fila e são cancelados após 24 horas. Um runner que fica desconectado por mais de 14 dias é removido do GitHub e precisa ser registrado novamente.

Posso hospedar GitLab runners ou agentes Jenkins do mesmo jeito?

Sim. Qualquer agente de CI Linux roda no servidor com acesso root. As regras de segurança valem igual: código não confiável vai para uma VM ou container descartável, nunca para o próprio host.

Como faço o pagamento, e vocês precisam da minha identidade?

Sem KYC: nunca pedimos um documento de identidade, uma selfie, documentos, um cartão ou um número de telefone. Recarregue um saldo em BTC, USDT, USDC, ETH, SOL, LTC, XMR (mínimo de US$ 1) e faça pedidos a partir dele por 30 dias, 3 meses, 6 meses ou 12 meses.

Fontes (12)
  1. Adding self-hosted runners — GitHub Docs (read 2026-11-01)
  2. Configuring the self-hosted runner application as a service — GitHub Docs (read 2026-11-01)
  3. Using self-hosted runners in a workflow — GitHub Docs (read 2026-11-01)
  4. Self-hosted runners reference (requirements, autoscaling, ephemeral runners, communication) — GitHub Docs (read 2026-11-01)
  5. Self-hosted runners — GitHub Docs (read 2026-11-01)
  6. Secure use reference — GitHub Docs (read 2026-11-01)
  7. Removing self-hosted runners — GitHub Docs (read 2026-11-01)
  8. Actions limits — GitHub Docs (read 2026-11-01)
  9. REST API endpoints for self-hosted runners — GitHub Docs (read 2026-11-01)
  10. Actions Runner Controller — GitHub Docs (read 2026-11-01)
  11. Linux post-installation steps for Docker Engine — Docker Docs (read 2026-11-01)
  12. actions/checkout (README usage) — GitHub (read 2026-11-01)

A partir de $91,65/30 dias · sem KYC

Pedir bare metal