diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3be021d --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.runner +token.txt diff --git a/gitea-runner/README.md b/gitea-runner/README.md new file mode 100644 index 0000000..83884cc --- /dev/null +++ b/gitea-runner/README.md @@ -0,0 +1,91 @@ +# Gitea Actions Runner — Hestia + +Este diretório contém a configuração do runner de Gitea Actions para executar workflows CI/CD. + +## Visão Geral + +O **act_runner** é o agente que executa os jobs definidos nos workflows `.gitea/workflows/*.yml`. Ele roda no Hestia (10.0.0.50) usando Docker. + +## Arquivos + +``` +gitea-runner/ +├── docker-compose.yml # Serviço do runner +├── config.yaml # Configuração (gerado no registro) +├── register.sh # Script de registro +└── data/ # Dados persistentes do runner +``` + +## Instalação + +### 1. Obter Token de Registro + +Acesse o Gitea como admin: +``` +https://gitea.hackerfortress.cc/admin/runners +``` + +Clique em **"New Runner"** e copie o token. + +### 2. Registrar o Runner + +```bash +cd gitea-runner +export RUNNER_TOKEN="seu-token-aqui" +./register.sh +``` + +### 3. Iniciar o Runner + +```bash +docker compose up -d +``` + +### 4. Verificar + +Acesse: +``` +https://gitea.hackerfortress.cc/admin/runners +``` + +O runner deve aparecer como **"Active"**. + +## Labels Disponíveis + +| Label | Descrição | +|-------|-----------| +| `gitea-runner-Hestia` | Runner principal | +| `ubuntu-latest` | Container Ubuntu para jobs | + +## Troubleshooting + +### Runner não aparece como active + +```bash +# Ver logs +docker compose logs -f act_runner + +# Verificar configuração +cat config.yaml +``` + +### Docker socket permission denied + +```bash +# No host (Hestia), adicionar usuário ao grupo docker +sudo usermod -aG docker $USER +``` + +### Jobs ficam em "Pending" + +- Verificar se runner está online +- Verificar se o token está correto +- Verificar se o runner tem labels necessárias + +## Atualização + +```bash +cd gitea-runner +docker compose pull +docker compose up -d +``` diff --git a/gitea-runner/act_runner b/gitea-runner/act_runner new file mode 100755 index 0000000..9c2429b Binary files /dev/null and b/gitea-runner/act_runner differ diff --git a/gitea-runner/config.yaml b/gitea-runner/config.yaml new file mode 100644 index 0000000..d047374 --- /dev/null +++ b/gitea-runner/config.yaml @@ -0,0 +1,18 @@ +log: + level: info + formatting: text + +runner: + capacity: 2 + name: gitea-runner-hestia + labels: + - gitea-runner-hestia + - ubuntu-latest:docker://ubuntu:latest + +cache: + enabled: false + +docker: + host: unix:///var/run/docker.sock + network: "" + privileged: false diff --git a/gitea-runner/docker-compose.yml b/gitea-runner/docker-compose.yml new file mode 100644 index 0000000..70d1cb8 --- /dev/null +++ b/gitea-runner/docker-compose.yml @@ -0,0 +1,18 @@ +version: '3.8' + +services: + act_runner: + image: gitea/act_runner:latest + container_name: gitea-runner + restart: unless-stopped + environment: + - CONFIG_FILE=/runner/config.yaml + - INSTANCE_URL=https://gitea.hackerfortress.cc + - RUNNER_TOKEN=${RUNNER_TOKEN} + - RUNNER_NAME=gitea-runner-hestia + - RUNNER_LABELS=gitea-runner-hestia + volumes: + - ./data:/data + - ./config.yaml:/runner/config.yaml + - /var/run/docker.sock:/var/run/docker.sock + network_mode: host diff --git a/gitea-runner/gitea-runner.service b/gitea-runner/gitea-runner.service new file mode 100644 index 0000000..f710867 --- /dev/null +++ b/gitea-runner/gitea-runner.service @@ -0,0 +1,14 @@ +[Unit] +Description=Gitea Actions Runner +After=network.target + +[Service] +Type=simple +User=iamferreirajp +WorkingDirectory=/home/iamferreirajp/homelab/gitea-runner +ExecStart=/home/iamferreirajp/homelab/gitea-runner/act_runner daemon +Restart=always +RestartSec=5 + +[Install] +WantedBy=multi-user.target diff --git a/gitea-runner/register.sh b/gitea-runner/register.sh new file mode 100755 index 0000000..7b011cb --- /dev/null +++ b/gitea-runner/register.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# ============================================ +# Gitea Runner Registration Script +# ============================================ +# Usage: +# 1. Get token from Gitea Admin > Runners +# 2. Run: RUNNER_TOKEN="your-token" ./register.sh + +set -e + +GITEA_URL="${INSTANCE_URL:-https://gitea.hackerfortress.cc}" +TOKEN="${RUNNER_TOKEN}" + +if [ -z "$TOKEN" ]; then + echo "❌ RUNNER_TOKEN not set" + echo " Get token from: ${GITEA_URL}/admin/runners" + exit 1 +fi + +echo "📡 Registering runner with Gitea at ${GITEA_URL}..." + +# Register and get the runner config +docker compose run --rm act_runner \ + act_runner generate-config \ + --instance "${GITEA_URL}" \ + --token "${TOKEN}" \ + --name "gitea-runner-dockerino" \ + > config.yaml + +echo "✅ Runner registered successfully!" +echo "" +echo "Next steps:" +echo "1. Review config.yaml" +echo "2. Run: docker compose up -d"