job "act-runner" { group "act-runner" { network { mode = "bridge" } # Consul Connect upstream to Gitea so the runner can register and receive jobs service { name = "act-runner" connect { sidecar_service { proxy { upstreams { destination_name = "code-connect" local_bind_port = 3000 } } } } } task "act-runner" { driver = "docker" config { image = "gitea/act_runner:latest" volumes = ["/var/run/docker.sock:/var/run/docker.sock"] } env = { GITEA_INSTANCE_URL = "http://localhost:3000" CONFIG_FILE = "/secrets/runner-config.yml" } # Required SOPS key: # act-runner.registration_token — runner registration token from Gitea # Admin → Settings → Actions → Runners → Create new runner template { data = <