--- # Playbook: deploy-immich.yml # # But: # - Deployer Immich dans le LXC immich # - Copier le docker-compose.yml depuis Git # - Verifier que le fichier .env.runtime existe deja sur le LXC # - Creer les dossiers runtime locaux # - Demarrer la stack Docker Compose # - Verifier que le port 2283 repond # # Important: # - Le fichier .env.runtime ne doit pas etre dans Git # - Le fichier .env.runtime doit etre sur le LXC: # /opt/stacks/immich/.env.runtime # - Ce playbook ne touche pas encore aux bibliotheques NAS - name: Deployer Immich hosts: immich_servers become: true gather_facts: false vars: stack_name: immich stack_path: /opt/stacks/immich compose_source: "{{ playbook_dir }}/../services/immich/docker-compose.yml" tasks: - name: Verifier que Docker est installe command: docker --version changed_when: false - name: Verifier que Docker Compose est installe command: docker compose version changed_when: false - name: Creer le dossier de la stack file: path: "{{ stack_path }}" state: directory owner: root group: root mode: "0750" - name: Creer le dossier library Immich file: path: "{{ stack_path }}/library" state: directory owner: root group: root mode: "0755" - name: Creer le dossier postgres Immich file: path: "{{ stack_path }}/postgres" state: directory owner: root group: root mode: "0755" - name: Verifier que le fichier env runtime existe stat: path: "{{ stack_path }}/.env.runtime" register: immich_env_runtime - name: Arreter si le fichier env runtime est absent fail: msg: "Le fichier {{ stack_path }}/.env.runtime est absent. Il doit etre cree sur le LXC, pas dans Git." when: not immich_env_runtime.stat.exists - name: Securiser le fichier env runtime file: path: "{{ stack_path }}/.env.runtime" owner: root group: root mode: "0600" - name: Creer le lien env pour Docker Compose file: src: "{{ stack_path }}/.env.runtime" dest: "{{ stack_path }}/.env" state: link owner: root group: root - name: Copier le fichier Docker Compose copy: src: "{{ compose_source }}" dest: "{{ stack_path }}/docker-compose.yml" owner: root group: root mode: "0644" - name: Valider la configuration Docker Compose command: docker compose config args: chdir: "{{ stack_path }}" changed_when: false - name: Telecharger les images Docker command: docker compose pull args: chdir: "{{ stack_path }}" - name: Demarrer la stack Immich command: docker compose up -d args: chdir: "{{ stack_path }}" - name: Attendre le port Immich wait_for: host: 127.0.0.1 port: 2283 timeout: 300 - name: Afficher les conteneurs de la stack command: docker compose ps args: chdir: "{{ stack_path }}" register: compose_ps changed_when: false - name: Afficher le statut Docker Compose debug: var: compose_ps.stdout_lines