version: '3.8' services: gitea-runner: image: gitea/act_runner:latest container_name: gitea-runner restart: unless-stopped environment: # Gitea instance URL GITEA_INSTANCE_URL: https://git.bsdserver.nl # Runner registration token (get from Gitea admin or repo settings) GITEA_RUNNER_REGISTRATION_TOKEN: ${GITEA_RUNNER_REGISTRATION_TOKEN:?Set registration token} # Runner name GITEA_RUNNER_NAME: ${GITEA_RUNNER_NAME:-alpine-docker-runner} # Runner labels - defines what jobs this runner can handle GITEA_RUNNER_LABELS: "self-hosted,alpine,docker" # Use custom config CONFIG_FILE: /config.yaml volumes: # Mount Docker socket for building images - /var/run/docker.sock:/var/run/docker.sock # Mount runner configuration - ./config.yaml:/config.yaml:ro # Persist runner data - gitea-runner-data:/data # Run as root to access Docker socket (or configure Docker group) user: "0:0" volumes: gitea-runner-data: