--- - name: Set homepage services list ansible.builtin.set_fact: homepage_public_services: >- {{ services | dict2items | selectattr('value.dependency.web', 'defined') | selectattr('value.dependency.web', 'in', ['infra-public', 'auth-public', 'app-public']) | map(attribute='key') | list }} homepage_internal_services: >- {{ services | dict2items | selectattr('value.dependency.web', 'defined') | selectattr('value.dependency.web', 'in', ['infra-internal', 'auth-internal', 'app-internal']) | map(attribute='key') | list }} - name: Create homepage directory ansible.builtin.file: path: "{{ node['home_path'] }}/{{ item }}" state: "directory" owner: "{{ ansible_user }}" group: "{{ node['group'] }}" mode: "0770" loop: - "containers/homepage" - "containers/homepage/config" - "containers/homepage/images" - name: Pull image containers.podman.podman_image: name: "docker.io/gethomepage/homepage" tag: "{{ version['containers']['homepage'] }}" state: "present" pull: true - name: Deploy config files ansible.builtin.template: src: "{{ hostvars['console']['node']['config_path'] }}/services/containers/app/homepage/config/{{ item }}.j2" dest: "{{ node['home_path'] }}/containers/homepage/config/{{ item }}" owner: "{{ ansible_user }}" group: "{{ node['group'] }}" mode: "0644" loop: - "settings.yaml" - "widgets.yaml" - "services.yaml" - "bookmarks.yaml" notify: "notification_restart_homepage" - name: Deploy image directory ansible.builtin.copy: src: "{{ hostvars['console']['node']['config_path'] }}/services/containers/app/homepage/images/" dest: "{{ node['home_path'] }}/containers/homepage/images/" owner: "{{ ansible_user }}" group: "{{ node['group'] }}" mode: "0644" - name: Deploy container file ansible.builtin.template: src: "{{ hostvars['console']['node']['config_path'] }}/services/containers/app/homepage/homepage.container.j2" dest: "{{ node['home_path'] }}/.config/containers/systemd/homepage.container" owner: "{{ ansible_user }}" group: "{{ node['group'] }}" mode: "0644" notify: "notification_restart_homepage" - name: Enable homepage.service ansible.builtin.systemd: name: "homepage.service" state: "started" enabled: true daemon_reload: true scope: "user" - name: Check container archive images ansible.builtin.stat: path: "{{ node['home_path'] }}/archives/containers/docker.io_gethomepage_homepage_{{ version['containers']['homepage'] }}.tar" register: container_archive_images - name: Save container archive images containers.podman.podman_save: image: - "docker.io/gethomepage/homepage:{{ version['containers']['homepage'] }}" dest: "{{ node['home_path'] }}/archives/containers/docker.io_gethomepage_homepage_{{ version['containers']['homepage'] }}.tar" format: "oci-archive" force: false when: not container_archive_images.stat.exists - name: Fetch container archive images ansible.builtin.fetch: src: "{{ node['home_path'] }}/archives/containers/docker.io_gethomepage_homepage_{{ version['containers']['homepage'] }}.tar" dest: "{{ hostvars['console']['node']['data_path'] }}/images/containers/" flat: true