Skip to content

Forgejo

Forgejo | Actions

Actions

Runner Setup

services:
  docker:
    image: data.forgejo.org/oci/docker:dind
    hostname: docker
    privileged: true
    volumes:
      - dind_data:/var/lib/docker
      - dind_certs:/certs
    environment:
      DOCKER_HOST: tcp://docker:2376

  runner:
    image: code.forgejo.org/forgejo/runner:12
    links:
      - docker
    depends_on:
      docker:
        condition: service_started
    environment:
      DOCKER_HOST: tcp://docker:2376
      DOCKER_CERT_PATH: /certs/client
      DOCKER_TLS_VERIFY: 1
    user: 1001:1001
    volumes:
      - ./data:/data
      - ./config.yml:/config.yml
      - dind_certs:/certs
    command: '/bin/sh -c "sleep 5; forgejo-runner daemon --config /config.yml"'

volumes:
  dind_data:
  dind_certs:

config.yml

log:
  level: debug
  job_level: debug

runner:
  file: .runner
  capacity: 1
  envs:
    DOCKER_HOST: tcp://docker:2376
    DOCKER_TLS_VERIFY: 1
    DOCKER_CERT_PATH: /certs/client

  env_file: .env
  timeout: 3h
  shutdown_timeout: 3h
  insecure: false
  fetch_timeout: 5s
  fetch_interval: 2s
  report_interval: 1s
  labels:
    - "docker:docker://data.forgejo.org/oci/node:lts"
    - "python-latest:docker://ghcr.io/astral-sh/uv:python3.14-alpine"
    - "ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-latest"

cache:
  enabled: true
  port: 0
  dir: ""
  external_server: ""
  secret: ""
  host: ""
  proxy_port: 0
  actions_cache_url_override: ""

container:
  network: "host"
  enable_ipv6: false
  privileged: true
  options: -v /certs/client:/certs/client
  workdir_parent:
    - /certs/client


  docker_host: ""
  force_pull: false
  force_rebuild: false

host:
  workdir_parent:

# when creating a new runner (https://git.boxnet.eu/owner/repo/settings/actions/runners/new)
# the following snippet will be presented
server:
  connections:
    forgejo:
      url:
      uuid:
      token:

  • https://forgejo.org/docs/latest/admin/actions/