--- ## Remove the previous app & install the new version - name: Remove freshrss previous version ansible.builtin.file: state: absent dest: "{{ freshrss_app_home }}" - name: Create app home ansible.builtin.file: state: directory dest: "{{ freshrss_app_home }}" owner: root group: www-data mode: "0o750" - name: Install freshrss application ansible.builtin.unarchive: remote_src: true src: "{{ freshrss_url }}" dest: "{{ freshrss_app_home }}" owner: root group: www-data mode: "a-rwx,u+rwX,g+rX" extra_opts: ['--strip-components=1'] exclude: "{{ freshrss_userdata_app_dirs }}" ## Ensure the data dirs exist, populate them if not - name: Create data home ansible.builtin.file: state: directory path: "{{ freshrss_data_home }}" owner: www-data group: www-data mode: "a-rwx,u+rwX,g+rX" # If the first data dir exists, other should exist too - name: Get data dir ansible.builtin.stat: path: "{{ freshrss_data_home }}/{{ freshrss_userdata_app_dirs[0] }}" register: _freshrss_userdata_dir_stat - name: Install freshrss data dir ansible.builtin.unarchive: remote_src: true src: "{{ freshrss_url }}" dest: "{{ freshrss_data_home }}" owner: www-data group: www-data mode: "a-rwx,u+rwX,g+rX" extra_opts: ['--strip-components=1'] include: "{{ freshrss_userdata_app_dirs | map('regex_replace', '^', 'FreshRSS-' ~ freshrss_version ~ '/') }}" when: not _freshrss_userdata_dir_stat.stat.exists - name: Link FreshRSS userdata dirs ansible.builtin.file: state: link src: "{{ freshrss_data_home }}/{{ item }}" dest: "{{ freshrss_app_home }}/{{ item }}" loop: "{{ freshrss_userdata_app_dirs }}" # Config file is inside `data/`, so we must put it last - name: Put freshrss configuration file ansible.builtin.template: src: config.php.j2 dest: "{{ freshrss_config_path }}" owner: www-data group: www-data mode: "0o640"