diff --git a/ansible/roles/kiwix/tasks/main.yml b/ansible/roles/kiwix/tasks/main.yml
index b1637f4..39794d3 100644
--- a/ansible/roles/kiwix/tasks/main.yml
+++ b/ansible/roles/kiwix/tasks/main.yml
@@ -158,6 +158,18 @@
- not item.stat.exists
notify: restart kiwix-serve
+# --- Determine which archives are available ---
+- name: Find available ZIM archives in kiwix directory
+ ansible.builtin.find:
+ paths: "{{ kiwix_zim_dir }}"
+ patterns: "*.zim"
+ file_type: any # includes symlinks
+ register: available_zim_files
+
+- name: Build list of available archive filenames
+ ansible.builtin.set_fact:
+ kiwix_available_archives: "{{ available_zim_files.files | map(attribute='path') | map('basename') | list }}"
+
# --- LaunchAgent deployment ---
- name: Deploy kiwix-serve LaunchAgent plist
ansible.builtin.template:
diff --git a/ansible/roles/kiwix/templates/kiwix-serve.plist.j2 b/ansible/roles/kiwix/templates/kiwix-serve.plist.j2
index 5d84916..26a61d1 100644
--- a/ansible/roles/kiwix/templates/kiwix-serve.plist.j2
+++ b/ansible/roles/kiwix/templates/kiwix-serve.plist.j2
@@ -11,8 +11,8 @@
{{ kiwix_serve_bin }}
--port={{ kiwix_port }}
-{% for archive in kiwix_zim_archives %}
- {{ kiwix_zim_dir }}/{{ archive.filename }}
+{% for filename in kiwix_available_archives %}
+ {{ kiwix_zim_dir }}/{{ filename }}
{% endfor %}
RunAtLoad