--- - name: Ensure torrserver base directory exists file: path: "{{ torrserver_base_dir }}" state: directory owner: 1000 group: 1000 mode: "0755" - name: Ensure config and torrents directories exist file: path: "{{ item }}" state: directory owner: 1000 group: 1000 mode: "0755" loop: - "{{ torrserver_config_dir }}" - "{{ torrserver_torrents_dir }}" - name: Deploy docker-compose.yml for TorrServer template: src: docker-compose.yml.j2 dest: "{{ torrserver_base_dir }}/docker-compose.yml" owner: root group: root mode: "0644" - name: Start/restart TorrServer via docker compose shell: | cd "{{ torrserver_base_dir }}" docker compose up -d --pull always args: executable: /bin/bash register: _torrserver_up changed_when: "'Started' in _torrserver_up.stdout or 'recreated' in _torrserver_up.stdout" - name: Wait for TorrServer UI to respond uri: url: "http://{{ int_ip }}:{{ torrserver_port }}" status_code: 200 timeout: 10 register: _check until: _check.status == 200 retries: 12 delay: 5 ignore_errors: yes