--- - name: Resolve Gitea domain to private IP (avoid Cloudflare for internal traffic) lineinfile: path: /etc/hosts line: "{{ ansible_eth0.ipv4.address }} {{ gitea_domain }}" regexp: "{{ gitea_domain }}" state: present - name: Create gitea-runner data directory file: path: "{{ gitea_runner_data_dir }}" state: directory owner: root group: root mode: "0700" - name: Deploy docker-compose file template: src: docker-compose.yml.j2 dest: "{{ gitea_runner_data_dir }}/docker-compose.yml" mode: "0600" notify: Restart gitea-runner - name: Deploy runner config template: src: config.yml.j2 dest: "{{ gitea_runner_data_dir }}/config.yml" mode: "0600" notify: Restart gitea-runner - name: Start gitea-runner community.docker.docker_compose_v2: project_src: "{{ gitea_runner_data_dir }}" state: present