Rulează-ți propriul Forgejo Runner pe Codeberg: ghid practic pentru CI/CD self-hosted

Rulează-ți propriul Forgejo Runner pe Codeberg: ghid practic pentru CI/CD self-hosted

Mai 22, 2026 codeberg forgejo ci-cd docker self-hosting github-alternative devops automation

De ce să-ți rulezi propriul runner CI/CD?

Dacă ai explorat Codeberg ca alternativă la GitHub, ai văzut deja cât de bine se potrivește cu nevoile multor dezvoltatori. Este o platformă construită pe Forgejo, susținută de o organizație non-profit și orientată spre confidențialitate. Totuși, ca orice infrastructură partajată, runnerii săi au limite clare când vine vorba de resurse și viteză.

Soluția este să-ți instalezi propriul runner Forgejo. Avantajul major este că acesta inițiază conexiunea spre Codeberg, deci funcționează fără probleme pe un VPS, un server de acasă sau chiar pe laptop. Nu ai nevoie de port forwarding sau configurări complicate de rețea.

Cum funcționează arhitectura

Un runner Forgejo este un proces care primește joburi de la Codeberg și le execută. Pentru securitate, îl izolăm de sistemul gazdă folosind Docker-in-Docker (DinD). În felul acesta, joburile rulează în containere separate fără să interfereze cu Docker-ul de pe gazdă.

Configurarea cu Docker Compose

Setarea de bază folosește doar două containere:

version: '3.8'

services:
  docker-in-docker:
    image: docker:dind
    container_name: 'docker_dind'
    privileged: 'true'
    command: ['dockerd', '-H', 'tcp://0.0.0.0:2375', '--tls=false']
    restart: 'unless-stopped'

  runner:
    image: 'data.forgejo.org/forgejo/runner:12'
    links:
      - docker-in-docker
    depends_on:
      docker-in-docker:
        condition: service_started
    container_name: 'runner'
    environment:
      DOCKER_HOST: tcp://docker-in-docker:2375
    user: 1001:1001
    volumes:
      - ./data:/data
    restart: 'unless-stopped'
    command: 'forgejo-runner daemon --config runner-config.yml'

Primul container oferă un mediu Docker izolat,第二个 furnizează runnerul propriu-zis.

Pregătirea sistemului

Prima dată trebuie să pregătești structura de fișiere și permisiunile. Mergi la directorul ales (cel mai bine /opt/forgejo-runner) și creează cache-ul cu permisiunile corect:

cd /opt/forgejo-runner
mkdir -p data/.cache
chown -R 1001:1001 data
chmod 775 data/.cache
chmod g+s data/.cache

În next step, generatează fișierul de configurare:

sudo sh -c 'docker run --rm data.forgejo.org/forgejo/runner:12 forgejo-runner generate-config > data/runner-config.yml'

Înregistrarea runnerului pe Codeberg

Pe Codeberg, mergi la setările contului sau organizației și alege Actions → Runners. Creează un nou runner, alege un nume și, dacă ai nevoie, o descriere.

Read in other languages:

RU BG EL CS UZ TR SV FI PT PL NB NL HU IT FR ES DE DA ZH-HANS EN