EQVPS

Cómo configurar un runner autohospedado de GitHub Actions en un VPS

Registra un runner autohospedado de GitHub Actions en un VPS e instálalo como servicio: descarga el runner como usuario sin root, regístralo con el token del repo, ejecuta svc.sh para que sobreviva a los reinicios. Comandos copia-pega.

Un runner autohospedado te da CI de coste fijo con cachés calientes — sin facturación por minuto, tu toolchain, tu máquina. Esta es la guía de configuración mínima; para saber por qué el autohospedaje gana a los minutos alojados por GitHub, y los detalles de los jobs Docker, consulta la guía completa y el caso de uso VPS para GitHub Actions.

1. Crea un usuario sin root (el runner rechaza root)

adduser --disabled-password --gecos "" runner
su - runner

2. Descarga el runner

En GitHub: Settings → Actions → Runners → New self-hosted runner → Linux, que te da la descarga exacta y un token de un solo uso. Luego:

mkdir actions-runner && cd actions-runner
curl -o actions-runner-linux-x64.tar.gz -L \
  https://github.com/actions/runner/releases/latest/download/actions-runner-linux-x64.tar.gz
tar xzf actions-runner-linux-x64.tar.gz

3. Regístralo con tu repo

./config.sh --url https://github.com/YOUR_ORG/YOUR_REPO --token YOUR_TOKEN

4. Instala como servicio (sobrevive a los reinicios)

No ejecutes ./run.sh en una terminal — instálalo:

sudo ./svc.sh install runner
sudo ./svc.sh start
sudo ./svc.sh status

El runner ahora aparece como Idle en la interfaz de GitHub y recoge los jobs que lo tengan como objetivo.

5. Úsalo desde un workflow

jobs:
  build:
    runs-on: self-hosted
    steps:
      - uses: actions/checkout@v4
      - run: make build && make test

Jobs Docker (opcional)

Instala Docker una vez, y los workflows pueden construir imágenes con la caché de capas persistiendo entre ejecuciones:

sudo apt install -y docker.io
sudo usermod -aG docker runner

Consulta instalar Docker en un VPS. Dimensionamiento: Small (8 $/mes) es cómodo para la mayoría del CI; sube de nivel para compilación pesada. Root en un minuto aproximadamente, sin KYC, pago en cripto.

Preguntas frecuentes

¿Cómo registro un runner autohospedado de GitHub Actions?

En tu repo (u org): Settings → Actions → Runners → New self-hosted runner → Linux. GitHub muestra un comando de descarga y un token de registro de un solo uso. Descarga el runner como usuario sin root, ejecuta ./config.sh con esa URL y el token, luego instálalo como servicio con svc.sh. Los pasos están abajo.

¿Por qué el runner no puede ejecutarse como root?

El runner se niega a ejecutarse como root por diseño. Crea un usuario sin root dedicado (adduser runner) y configúralo ahí. Eso también limita lo que un workflow malicioso podría tocar en tu máquina.

¿Cómo mantengo el runner en marcha tras reiniciar?

Usa el ayudante svc.sh incluido: sudo ./svc.sh install runner && sudo ./svc.sh start. Instala una unidad systemd para que el runner arranque al iniciar y se reinicie ante fallos, y aparezca como Idle en la interfaz de GitHub.

¿Necesito una IP dedicada para un runner?

No. El runner marca hacia GitHub por HTTPS; nada necesita alcanzarlo de forma entrante. Un plan NAT (desde 3 $/mes) sirve. Toma una IP dedicada solo si además autohospedas algo que sirve tráfico.

¿Piden documento de identidad o tarjeta?

No. Un correo para registrarte, pago en USDC o USDT — sin documentos, sin tarjeta. Root en un minuto aproximadamente.

Comentarios

Aún no hay comentarios. Sé el primero.

Deja un comentario

Los comentarios se moderan antes de aparecer.