--- - name: Create Calibre directories file: path: "{{ item }}" state: directory mode: 0755 loop: - "{{ calibre_base_dir }}" - "{{ calibre_config_dir }}" - name: Ensure books directory has correct permissions file: path: "{{ calibre_library_dir }}" state: directory mode: 0755 owner: "1000" group: "1000" - name: Deploy Calibre-web docker-compose.yml template: src: docker-compose.yml.j2 dest: "{{ calibre_base_dir }}/docker-compose.yml" mode: 0644 - name: Start Calibre-web services shell: | cd {{ calibre_base_dir }} docker compose up -d args: executable: /bin/bash - name: Wait for Calibre-web to start pause: seconds: 20 - name: Check Calibre-web container status shell: docker ps --filter name=calibre-web register: calibre_web_status changed_when: false - name: Show Calibre-web status debug: var: calibre_web_status.stdout - name: Verify Calibre-web is accessible uri: url: "http://{{ ansible_host }}:{{ calibre_web_port }}" status_code: 200 timeout: 30 register: calibre_web_accessible until: calibre_web_accessible.status == 200 retries: 5 delay: 10