# Gitea Actions self-hosted runner. # # Polls https://gitea.phasefinal.com for queued jobs and runs them in # ephemeral job-containers spawned via the host docker socket. The # runner registers itself on first start using # GITEA_RUNNER_REGISTRATION_TOKEN; subsequent starts reuse credentials # cached at ${DATA_DIR}/.runner. # # Tunables live in .env. config.yaml controls runner internals (job # timeouts, capacity, container engine settings) — edit conf/config.yaml, # don't inline that here. services: runner: image: ${RUNNER_IMAGE} container_name: gitea-runner restart: unless-stopped environment: - GITEA_INSTANCE_URL=${GITEA_INSTANCE_URL} - GITEA_RUNNER_REGISTRATION_TOKEN=${GITEA_RUNNER_REGISTRATION_TOKEN} - GITEA_RUNNER_NAME=${GITEA_RUNNER_NAME} - GITEA_RUNNER_LABELS=${GITEA_RUNNER_LABELS} - CONFIG_FILE=/data/config.yaml volumes: - ${DATA_DIR}:/data - /var/run/docker.sock:/var/run/docker.sock networks: - tnet labels: - homepage.group=Agents (no UI) - homepage.name=gitea-runner - homepage.icon=mdi-cog-play - homepage.description=Gitea Actions self-hosted runner (${GITEA_RUNNER_NAME}) networks: tnet: name: traefik-net external: true