aboutsummaryrefslogtreecommitdiff
path: root/roles/searxng
diff options
context:
space:
mode:
authorKumar Damani <me@kumardamani.net>2022-07-03 15:49:40 +0000
committerKumar Damani <me@kumardamani.net>2022-07-03 15:49:40 +0000
commita056fbe70752d9ac529d233c7c0c0c372d6ed0f1 (patch)
tree174fc8426a5638764378466c0867ae819027101b /roles/searxng
parent715b4a9f53cf9de4f42887f84603fdfc4599261d (diff)
added searx
Diffstat (limited to 'roles/searxng')
-rw-r--r--roles/searxng/defaults/main.yaml14
-rw-r--r--roles/searxng/handlers/main.yaml15
-rw-r--r--roles/searxng/tasks/main.yaml69
-rw-r--r--roles/searxng/templates/settings.yaml.j211
4 files changed, 109 insertions, 0 deletions
diff --git a/roles/searxng/defaults/main.yaml b/roles/searxng/defaults/main.yaml
new file mode 100644
index 0000000..b437c19
--- /dev/null
+++ b/roles/searxng/defaults/main.yaml
@@ -0,0 +1,14 @@
+# Default Values
+---
+
+# Playbook dependent.
+searxng_domain: ''
+searxng_host_port: ''
+searxng_data_root: ''
+searxng_secret_key: ''
+
+# Role defaults.
+searxng_tz: 'America/Toronto'
+searxng_docker_network_name: 'searxng_network'
+searxng_url: 'https://{{ searxng_domain }}/'
+searxng_redis_container_name: 'searxng-redis'
diff --git a/roles/searxng/handlers/main.yaml b/roles/searxng/handlers/main.yaml
new file mode 100644
index 0000000..7bee977
--- /dev/null
+++ b/roles/searxng/handlers/main.yaml
@@ -0,0 +1,15 @@
+---
+
+- name: 'Restart Redis container'
+ community.docker.docker_container:
+ name: '{{ searxng_redis_container_name }}'
+ state: 'started'
+ restart: true
+ listen: 'redis_restart'
+
+- name: 'Restart Searxng container'
+ community.docker.docker_container:
+ name: 'searxng'
+ state: 'started'
+ restart: true
+ listen: 'searxng_restart'
diff --git a/roles/searxng/tasks/main.yaml b/roles/searxng/tasks/main.yaml
new file mode 100644
index 0000000..668594b
--- /dev/null
+++ b/roles/searxng/tasks/main.yaml
@@ -0,0 +1,69 @@
+# https://docs.searxng.org/admin/installation-docker.html#installation-docker
+---
+
+- name: 'Create Searxng data dir'
+ file:
+ path: '{{ searxng_data_root }}'
+ state: 'directory'
+ owner: '{{ ansible_user }}'
+ group: '{{ ansible_user }}'
+ mode: '755'
+
+- name: 'Copy over searxng settings file to data dir'
+ template:
+ src: 'settings.yaml.j2'
+ dest: '{{ searxng_data_root }}/settings.yml'
+ owner: '{{ ansible_user }}'
+ group: '{{ ansible_user }}'
+ mode: '644'
+ notify:
+ - 'redis_restart'
+ - 'searxng_restart'
+
+- name: 'Create the Searxng network'
+ community.docker.docker_network:
+ name: '{{ searxng_docker_network_name }}'
+ ipam_driver: 'default'
+ state: 'present'
+
+- name: 'Make sure the Redis container is created and running'
+ community.docker.docker_container:
+ name: '{{ searxng_redis_container_name }}'
+ image: 'redis:alpine'
+ command: 'redis-server --save "" --appendonly "no"'
+ networks:
+ - name: '{{ searxng_docker_network_name }}'
+ tmpfs:
+ - '/var/lib/redis'
+ cap_drop:
+ - 'ALL'
+ capabilities:
+ - 'SETGID'
+ - 'SETUID'
+ - 'DAC_OVERRIDE'
+ state: 'started'
+
+- name: 'Make sure the Searxng container is created and running'
+ community.docker.docker_container:
+ name: 'searxng'
+ image: 'searxng/searxng:latest'
+ networks:
+ - name: '{{ searxng_docker_network_name }}'
+ ports:
+ - '0.0.0.0:{{ searxng_host_port }}:8080'
+ volumes:
+ - '{{ searxng_data_root }}/:/etc/searxng:rw'
+ env:
+ TZ': '{{ searxng_tz }}'
+ cap_drop:
+ - 'ALL'
+ capabilities:
+ - 'CHOWN'
+ - 'SETGID'
+ - 'SETUID'
+ - 'DAC_OVERRIDE'
+ log_driver: 'json-file'
+ log_options:
+ max-size: '1m'
+ max-file: '1'
+ state: 'started'
diff --git a/roles/searxng/templates/settings.yaml.j2 b/roles/searxng/templates/settings.yaml.j2
new file mode 100644
index 0000000..eb49cfd
--- /dev/null
+++ b/roles/searxng/templates/settings.yaml.j2
@@ -0,0 +1,11 @@
+# see https://docs.searxng.org/admin/engines/settings.html#use-default-settings
+use_default_settings: true
+server:
+ base_url: "{{ searxng_url }}"
+ secret_key: "{{ searxng_secret_key }}"
+ limiter: false # can be disabled for a private instance
+ image_proxy: true
+ui:
+ static_use_hash: true
+redis:
+ url: redis://{{ searxng_redis_container_name }}:6379/0