--- - name: Deploy Immich service block: - name: Set Immich directories ansible.builtin.set_fact: immich_data_dir: "/mnt/data/photos/immich-library" immich_database_dir: "/mnt/services/immich/postgres" immich_service_dir: "{{ ansible_env.HOME }}/.services/immich" - name: Create Immich directories ansible.builtin.file: path: "{{ immich_dir }}" state: directory mode: "0755" loop: - "{{ immich_data_dir }}" - "{{ immich_service_dir }}" loop_control: loop_var: immich_dir - name: Deploy Immich docker-compose.yml ansible.builtin.template: src: docker-compose.yml.j2 dest: "{{ immich_service_dir }}/docker-compose.yml" mode: "0644" register: immich_compose - name: Deploy Immich .env ansible.builtin.template: src: dotenv.j2 dest: "{{ immich_service_dir }}/.env" mode: "0644" register: immich_compose - name: Stop Immich service ansible.builtin.command: docker compose -f "{{ immich_service_dir }}/docker-compose.yml" down --remove-orphans when: immich_compose.changed - name: Start Immich service ansible.builtin.command: docker compose -f "{{ immich_service_dir }}/docker-compose.yml" up -d when: immich_compose.changed tags: - services - immich