Vlastní Forgejo Runner na Codebergu: Jak si postavit CI/CD bez cizí infrastruktury

Vlastní Forgejo Runner na Codebergu: Jak si postavit CI/CD bez cizí infrastruktury

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

Proč si hostovat vlastní CI/CD runner?

Codeberg se stal oblíbenou alternativou k GitHubu. Stojí na Forgejo a spravuje ho nezisková organizace, která klade důraz na soukromí a komunitu. Přesto má jako každý provozovatel omezené zdroje. Sdílené běhové prostředí tam proto není vždy nejrychlejší.

Mnoho lidí proto přechází na vlastní Forgejo runner. Výhoda je v tom, že runner sám navazuje spojení směrem ven. Díky tomu ho můžete spustit na VPS, domácím serveru i na notebooku – bez nutnosti otevírat porty.

Jak to celé funguje

Runner je v podstatě pracovník, který přijímá úkoly z Codebergu a spouštějí je. Abychom ho ochránili, izolujeme ho pomocí Docker-in-Docker. Runner tak vytváří kontejnery, aniž by sahal na Docker vašeho hostitele.

Docker Compose nastavení

Základem je jednoduché dvoukontejnerové řešení:

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'

První kontejner poskytuje izolované Docker prostředí. Druhý pak komunikuje s tímto prostředí.

Příprava systému

Před spuštěním kontejnerů si připravte strukturu. Vytvořte na serveru novou adresář odkazující na /opt/forgejo-runner,navigujte k ní a pak větí:

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

Potom generujte konfigurační soubor:

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

Jak runner zaregistrovat na Codebergu

Go to your Codeberg account or organization settings → Actions → Runners. Vytvořte nový runner, která has a memorable name. Codeberg pak generuje UUID a token – ty si hned zapisujte. Tyto údaje umožňují runneru komunikovat s Codebergu.

Labels a capacity

V souboru runner-config.yml upravte dvě hlavní části.

1. Server konfigurace
Přidejte UUID a token, kteray Codeberg poskytl.

2. Labels
Labels jsou značky, ktery workflows ovladají. Příklad:

labels: 
  - 'ubuntu-latest:docker://node:20-bookworm'
  - 'ubuntu-22.04:docker://node:20-bookworm'
  - 'ubuntu-24.04:docker://node:22-bookworm'

When a workflow specifies runs-on: ubuntu-latest, Codeberg finds the runner with that label. This is your matchmaking system between jobs and runners.

Optional: Adjust Capacity
Default je 1 job per runner. Pokud má server dostatečné zdroje, můžete capacity zvýšit.

Jak spustit runner

Once your configuration is complete, start the runner:

docker-compose up -d

Monitorujte logy:

docker-compose logs -f runner

Co si všimnete na výkonu

By self-hosting your runner, you'll experience:

  • Rychlejší spuštění – žádné čekání v queue
  • Plná kontrola nad CI/CD prostředí
  • Úspora a podpora neziskové organizace
  • Soukromí – logy zůstávají u vás
  • Flexibilita – můžete rozšířit podle potřeby

Závěr

Nastavení vlastního Forgejo runneru je jednoduchý projekt, který se vyplatí ihned. Pokud už Codeberg používáte, je to přirozený další krok.

Read in other languages:

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