# runner-config.yaml — only the relevant section
container:
  # join the same network Gitea is on, so job containers can resolve 'gitea'
  # for actions/checkout and other internal API calls.
  network: gitea_gitea
  # passed as DOCKER_HOST inside the job container; act_runner auto-mounts
  # this socket path into the job, so no explicit -v option is needed.
  docker_host: "unix:///var/run/docker.sock"
  # Job workspaces are stored here and mounted at the same absolute path
  # inside job containers. Identical host <-> container path is the requirement:
  # Compose resolves relative bind mounts to $(pwd) inside the job container
  # and passes that absolute path to the host daemon, which must find the file
  # at that exact host path. Prerequisite: /srv/gitea-workspace exists on the
  # host and is bind-mounted in the runner container (see compose.yaml).
  workdir_parent: /srv/gitea-workspace
  # whitelists volumes that workflow steps may bind-mount
  valid_volumes:
    - "/var/run/docker.sock"
    - "/srv/gitea-workspace"
    - "/opt/familienarchiv"
  # mount the workspace and the permanent obs/config directory into job containers.
  # /opt/familienarchiv is the stable path CI copies configs to (ADR-016); it must
  # be mounted here so deploy steps can write through to the host filesystem.
  options: "-v /srv/gitea-workspace:/srv/gitea-workspace -v /opt/familienarchiv:/opt/familienarchiv"
  # keep behavior default — Testcontainers handles its own networking
  force_pull: false
