---
- name: 'Configure music application'
  hosts: all

  vars_files:
    - vars/ports.yml
    - vars/vars.yml

  vars:
    base_dir: '/home/major/applications/music/'

  tasks:

    - name: 'Create application directories'
      ansible.builtin.file:
        path: '{{ item }}'
        state: 'directory'
        mode: '0755'
      loop:
        - '{{ base_dir }}'
        - '{{ (base_dir, "data") | path_join }}'

    - name: 'Copy application files'
      ansible.builtin.copy:
        src: '{{ item }}'
        dest: '{{ base_dir }}'
        mode: '0644'
      loop:
        - './files/apps/music/docker-compose.yml'

    - name: 'Set up environment variables for application'
      ansible.builtin.template:
        src: 'env.j2'
        dest: '{{ (base_dir, ".env") | path_join }}'
        mode: '0644'
      vars:
        env_dict:
          WEB_SERVER_PORT: '{{ navidrome_port }}'

    - name: 'Run application with docker compose'
      community.docker.docker_compose_v2:
        project_src: '{{ base_dir }}'
        state: 'present'