services: runner: image: docker.io/gitea/act_runner:nightly environment: CONFIG_FILE: /config.yaml # <-- Path to the runner configuration file inside the container GITEA_INSTANCE_URL: http://gitea:3000/ # <-- Use the internal Docker network URL GITEA_RUNNER_REGISTRATION_TOKEN: asdasd # <-- REPLACE WITH YOUR REGISTRATION TOKEN GITEA_RUNNER_NAME: FastFlaskRunner volumes: - ./config/runner.yaml:/config.yaml # <-- Mount for runner configuration - ./data/prod/pkgs:/prod/pkgs # <-- Mount for production packages - ./data/prod/data:/prod/data # <-- Mount for production data - ./data/develop:/develop/data # <-- Mount for development data - /var/run/docker.sock:/var/run/docker.sock # <-- Mount Docker socket for Docker-in-Docker functionality (DoNotChange) depends_on: - gitea restart: always networks: - fast-services gitea: image: gitea/gitea:latest container_name: gitea restart: always environment: - ROOT_URL=https://git.nxs.solutions/ # <-- Change to your Gitea URL either Domain or IP with protocol ports: - "2222:22" # <-- SSH access for Git operations (Change if needed to your preferred port) # - "3000:3000" # Uncomment if you want to expose Gitea web interface directly (needed if not rooted behind a reverse proxy) volumes: # Persistent storage for Gitea data, configuration, repositories, etc. # Maps a named volume 'gitea_data' to the container's /data directory. - ./data:/data - /etc/timezone:/etc/timezone:ro # <--- Timezone settings - /etc/localtime:/etc/localtime:ro # <--- Timezone settings - ./data/git:/data/host_repos:ro # <--- Mount for Git repositories - ./logs/:/data/gitea/log/:rw # <--- Mount for Gitea logs (neccessary for debugging and fail2ban) networks: - fast-services healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000/"] interval: 1m30s timeout: 10s retries: 3 networks: fast-services: external: true