--- - name: Deploy SearXNG with Docker Compose hosts: ubuntu become: true tasks: - name: Check if host has searxng service ansible.builtin.set_fact: has_searxng_service: "{{'searxng' in services}}" - name: Skip hosts without searxng service ansible.builtin.meta: end_host when: not has_searxng_service - name: Create searxng group ansible.builtin.group: name: "{{searxng_group}}" - name: Create searxng user ansible.builtin.user: name: "{{searxng_user}}" comment: "{{searxng_user}}" group: "{{searxng_group}}" system: true - name: Add group searxng to keeper_user ansible.builtin.user: name: "{{keeper_user}}" groups: "{{searxng_group}}" append: true - name: Create searxng directory ansible.builtin.file: path: "{{searxng_directory}}" owner: "{{searxng_user}}" group: "{{searxng_group}}" state: directory mode: '750' - name: Template configuration files ansible.builtin.template: src: "{{item.src}}" dest: "{{searxng_directory}}/{{item.dest}}" owner: "{{searxng_user}}" group: "{{searxng_group}}" mode: '550' loop: - src: "docker-compose.yml.j2" dest: "docker-compose.yml" - src: "searxng-settings.yml.j2" dest: "searxng-settings.yml" - name: Reset SSH connection to apply group changes meta: reset_connection - name: Start SearXNG service community.docker.docker_compose_v2: project_src: "{{searxng_directory}}" state: present pull: always