# vim: ft=yaml.ansible --- - name: Create SearXNG volume directory ansible.builtin.file: path: "{{ services.searxng.volume }}" owner: root mode: u=rwx,g=rx,o=rx state: directory - name: Copy SearXNG settings.yml file ansible.builtin.template: src: settings.yml.j2 dest: "{{ services.searxng.volume }}/settings.yml" owner: root mode: u=rw,g=r,o=r - name: Deploy SearXNG with Docker Compose community.docker.docker_compose: project_name: searxng state: "{{ 'absent' if stop is defined and stop else 'present' }}" restarted: "{{ stop is undefined or not stop }}" remove_orphans: true pull: true definition: version: '3.8' services: app: image: searxng/searxng:{{ services.searxng.version }} restart: always environment: SEARXNG_BASE_URL: https://{{ services.searxng.domain }} networks: default: services: aliases: - searxng tor: aliases: - searxng volumes: - "{{ services.searxng.volume }}:/etc/searxng:rw" cap_add: - chown - setuid - setgid - dac_override cap_drop: - all logging: driver: json-file options: max-size: 1m max-file: '1' redis: image: redis:{{ services.searxng.redis_version }} restart: always command: redis-server --save "" --appendonly "no" tmpfs: - /var/lib/redis cap_add: - setuid - setgid - dac_override cap_drop: - all networks: services: external: true tor: external: true - name: Remove cron job to restart SearXNG every 6 hours ansible.builtin.cron: name: Restart SearXNG Docker container minute: '0' hour: '*/6' user: root job: docker restart searxng_app_1 cron_file: ansible_restart_searxng state: absent