services: gitea: image: gitea/gitea:latest ports: - '3000:3000' - '222:22' volumes: - /portainer/Files/AppData/Config/Gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro environment: PUID: '1000' PGID: '100' # Required for Gitea Actions. See https://docs.gitea.com/usage/actions/overview GITEA__actions__ENABLED: 'true' restart: unless-stopped container_name: gitea # Gitea Actions runner (act_runner). # Get a registration token from Gitea at: # Site Administration -> Actions -> Runners -> Create new Runner # then set GITEA_RUNNER_REGISTRATION_TOKEN before starting. gitea-runner: image: gitea/act_runner:latest container_name: gitea-runner restart: unless-stopped depends_on: - gitea environment: CONFIG_FILE: /config.yaml # Use the in-compose DNS name so the runner can reach Gitea. # Override with your public URL if the runner runs on another host. GITEA_INSTANCE_URL: ${GITEA_INSTANCE_URL:-http://gitea:3000} GITEA_RUNNER_REGISTRATION_TOKEN: ${GITEA_RUNNER_REGISTRATION_TOKEN:-} GITEA_RUNNER_NAME: ${GITEA_RUNNER_NAME:-docker-templates-runner} GITEA_RUNNER_LABELS: ${GITEA_RUNNER_LABELS:-ubuntu-latest:docker://node:20-bookworm,ubuntu-22.04:docker://node:20-bookworm,debian-latest:docker://node:20-bookworm} volumes: - /portainer/Files/AppData/Config/Gitea-runner:/data - /portainer/Files/AppData/Config/Gitea-runner/config.yaml:/config.yaml - /var/run/docker.sock:/var/run/docker.sock - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro