--- # Copies services// to the server and renders the files that # need templating (e.g. .env, docker-compose.yml). # # Persistent data lives in named Docker volumes # see services//backup-docker-compose.yml. .env only carries the S3 # credentials that backup/restore need, rendered for every host. - name: Ensure services directory exists on the host ansible.builtin.file: path: "/home/{{ deploy_user }}/services/{{ service_group }}" state: directory mode: "0755" - name: Copy static service files (compose files, scripts, configs) ansible.builtin.copy: src: "{{ services_root }}/{{ service_group }}/" dest: "/home/{{ deploy_user }}/services/{{ service_group }}/" mode: preserve - name: Render S3 backup credentials into .env (auto-loaded by docker compose) ansible.builtin.template: src: env.j2 dest: "/home/{{ deploy_user }}/services/{{ service_group }}/.env" mode: "0600" - name: Render Gitea Actions runner compose file when: service_group == 'dev' ansible.builtin.template: src: runners-docker-compose.yml.j2 dest: "/home/{{ deploy_user }}/services/dev/Runners/docker-compose.yml" mode: "0644" - name: Make spinup/spindown/restore scripts executable ansible.builtin.file: path: "/home/{{ deploy_user }}/services/{{ service_group }}/{{ item }}" mode: "0755" loop: - spinup.sh - spindown.sh - restore.sh