121 lines
2.8 KiB
YAML
121 lines
2.8 KiB
YAML
---
|
|
|
|
- name: Install dependencies.
|
|
ansible.builtin.apt:
|
|
name:
|
|
- python3-dev
|
|
- python3-babel
|
|
- python3-venv
|
|
- uwsgi
|
|
- uwsgi-plugin-python3
|
|
- git
|
|
- build-essential
|
|
- libxslt-dev
|
|
- zlib1g-dev
|
|
- libffi-dev
|
|
- libssl-dev
|
|
state: present
|
|
|
|
- name: Create searxng user.
|
|
ansible.builtin.user:
|
|
state: present
|
|
name: searxng
|
|
password: !
|
|
system: true
|
|
create_home: true
|
|
home: "{{ searxng_homedir }}"
|
|
shell: /usr/sbin/nologin
|
|
|
|
- name: Set searxng_source and searxng_pyenv variable.
|
|
ansible.builtin.set_fact:
|
|
searxng_source: "{{ searxng_homedir }}/src"
|
|
searxng_pyenv: "{{ searxng_homedir }}/pyenv"
|
|
searxng_compiled: "{{ searxng_homedir }}/compiled"
|
|
|
|
- name: Clone searxng git repository.
|
|
ansible.builtin.git:
|
|
clone: true
|
|
repo: https://github.com/searxng/searxng.git
|
|
dest: "{{ searxng_source }}"
|
|
depth: 1
|
|
version: "{{ searxng_git_commit }}"
|
|
force: true
|
|
single_branch: true
|
|
|
|
- name: Install pip dependencies.
|
|
ansible.builtin.pip:
|
|
virtualenv: "{{ searxng_pyenv }}"
|
|
virtualenv_command: python3 -m venv
|
|
name:
|
|
- pip
|
|
- setuptools
|
|
- wheel
|
|
- pyyaml
|
|
state: present
|
|
|
|
- name: Compile searxng.
|
|
ansible.builtin.pip:
|
|
virtualenv: "{{ searxng_pyenv }}"
|
|
requirements: "{{ searxng_source }}/requirements.txt"
|
|
extra_args: "--use-pep517 --no-build-isolation \
|
|
-e {{ searxng_source }}"
|
|
state: present
|
|
|
|
- name: Remove old program files.
|
|
ansible.builtin.file:
|
|
path: "{{ searxng_compiled }}"
|
|
state: absent
|
|
changed_when: false
|
|
|
|
- name: Install new program files.
|
|
ansible.builtin.copy:
|
|
remote_src: true
|
|
src: "{{ searxng_source }}/"
|
|
dest: "{{ searxng_compiled }}"
|
|
owner: searxng
|
|
group: searxng
|
|
mode: "0775"
|
|
changed_when: false
|
|
|
|
- name: Create searxng settings directory.
|
|
ansible.builtin.file:
|
|
state: directory
|
|
owner: searxng
|
|
group: searxng
|
|
mode: "0775"
|
|
path: /etc/searxng
|
|
|
|
- name: Decrypt secrets in settings file.
|
|
ansible.builtin.set_fact:
|
|
searxng_settings: >-
|
|
{{ searxng_settings | combine(searxng_settings, recursive=true) }}
|
|
no_log: true
|
|
|
|
- name: Install searxng settings file.
|
|
ansible.builtin.template:
|
|
src: settings.yml.j2
|
|
dest: /etc/searxng/settings.yml
|
|
owner: searxng
|
|
group: searxng
|
|
mode: "0600"
|
|
notify:
|
|
- Reload systemd daemon.
|
|
- Restart searxng service.
|
|
|
|
- name: Create systemd unit file.
|
|
ansible.builtin.template:
|
|
src: searxng.service.j2
|
|
dest: /etc/systemd/system/searxng.service
|
|
owner: root
|
|
group: root
|
|
mode: "0444"
|
|
notify:
|
|
- Reload systemd daemon.
|
|
- Restart searxng service.
|
|
|
|
- name: Enable and start searxng service.
|
|
ansible.builtin.service:
|
|
name: searxng
|
|
enabled: true
|
|
state: started
|