mirror of
https://github.com/davestephens/ansible-nas
synced 2025-01-26 10:15:14 +00:00
Add FlareSolverr Support
This commit is contained in:
parent
e60c38b168
commit
5aee80dc1d
8 changed files with 128 additions and 0 deletions
4
nas.yml
4
nas.yml
|
@ -133,6 +133,10 @@
|
||||||
tags:
|
tags:
|
||||||
- firefly
|
- firefly
|
||||||
|
|
||||||
|
- role: flaresolverr
|
||||||
|
tags:
|
||||||
|
- flaresolverr
|
||||||
|
|
||||||
- role: freshrss
|
- role: freshrss
|
||||||
tags:
|
tags:
|
||||||
- freshrss
|
- freshrss
|
||||||
|
|
19
roles/flaresolverr/defaults/main.yml
Normal file
19
roles/flaresolverr/defaults/main.yml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
---
|
||||||
|
flaresolverr_enabled: false
|
||||||
|
flaresolverr_available_externally: false
|
||||||
|
|
||||||
|
# directories
|
||||||
|
flaresolverr_config_directory: "{{ docker_home }}/flaresolverr/config"
|
||||||
|
|
||||||
|
# uid / gid
|
||||||
|
flaresolverr_user_id: "0"
|
||||||
|
flaresolverr_group_id: "0"
|
||||||
|
|
||||||
|
# network
|
||||||
|
flaresolverr_port: "8191"
|
||||||
|
|
||||||
|
# specs
|
||||||
|
flaresolverr_memory: 200m
|
||||||
|
|
||||||
|
# docker
|
||||||
|
flaresolverr_container_name: flaresolverr
|
11
roles/flaresolverr/docs/flaresolverr.md
Normal file
11
roles/flaresolverr/docs/flaresolverr.md
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
# FlareSolverr
|
||||||
|
|
||||||
|
Homepage: <https://github.com/FlareSolverr/FlareSolverr>
|
||||||
|
|
||||||
|
FlareSolverr is a proxy server to bypass Cloudflare and DDoS-GUARD protection. Some Jackett indexers require it.
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Set `flaresolverr_enabled: true` in your `inventories/<your_inventory>/nas.yml` file.
|
||||||
|
|
||||||
|
The Flaresolverr API can be accessed from <http://ansible_nas_host_or_ip:8191>.
|
6
roles/flaresolverr/molecule/default/molecule.yml
Normal file
6
roles/flaresolverr/molecule/default/molecule.yml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
provisioner:
|
||||||
|
inventory:
|
||||||
|
group_vars:
|
||||||
|
all:
|
||||||
|
flaresolverr_enabled: true
|
10
roles/flaresolverr/molecule/default/side_effect.yml
Normal file
10
roles/flaresolverr/molecule/default/side_effect.yml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
---
|
||||||
|
- name: Stop
|
||||||
|
hosts: all
|
||||||
|
become: true
|
||||||
|
tasks:
|
||||||
|
- name: "Include {{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }} role"
|
||||||
|
ansible.builtin.include_role:
|
||||||
|
name: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') | basename }}"
|
||||||
|
vars:
|
||||||
|
flaresolverr_enabled: false
|
18
roles/flaresolverr/molecule/default/verify.yml
Normal file
18
roles/flaresolverr/molecule/default/verify.yml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
---
|
||||||
|
- name: Verify
|
||||||
|
hosts: all
|
||||||
|
gather_facts: false
|
||||||
|
tasks:
|
||||||
|
- ansible.builtin.include_vars:
|
||||||
|
file: ../../defaults/main.yml
|
||||||
|
|
||||||
|
- name: Get container state
|
||||||
|
community.docker.docker_container_info:
|
||||||
|
name: "{{ flaresolverr_container_name }}"
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- name: Check FlareSolverr is running
|
||||||
|
ansible.builtin.assert:
|
||||||
|
that:
|
||||||
|
- result.container['State']['Status'] == "running"
|
||||||
|
- result.container['State']['Restarting'] == false
|
18
roles/flaresolverr/molecule/default/verify_stopped.yml
Normal file
18
roles/flaresolverr/molecule/default/verify_stopped.yml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
---
|
||||||
|
- name: Verify
|
||||||
|
hosts: all
|
||||||
|
gather_facts: false
|
||||||
|
tasks:
|
||||||
|
- ansible.builtin.include_vars:
|
||||||
|
file: ../../defaults/main.yml
|
||||||
|
|
||||||
|
- name: Try and stop and remove FlareSolverr
|
||||||
|
community.docker.docker_container:
|
||||||
|
name: "{{ flaresolverr_container_name }}"
|
||||||
|
state: absent
|
||||||
|
register: result
|
||||||
|
|
||||||
|
- name: Check FlareSolverr is stopped
|
||||||
|
ansible.builtin.assert:
|
||||||
|
that:
|
||||||
|
- not result.changed
|
42
roles/flaresolverr/tasks/main.yml
Normal file
42
roles/flaresolverr/tasks/main.yml
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
---
|
||||||
|
- name: Start FlareSolverr
|
||||||
|
block:
|
||||||
|
- name: Create FlareSolverr Directories
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ item }}"
|
||||||
|
state: directory
|
||||||
|
# mode: 0755
|
||||||
|
with_items:
|
||||||
|
- "{{ docker_home }}/flaresolverr/config"
|
||||||
|
|
||||||
|
- name: FlareSolverr Docker Container
|
||||||
|
community.docker.docker_container:
|
||||||
|
name: "{{ flaresolverr_container_name }}"
|
||||||
|
image: flaresolverr/flaresolverr
|
||||||
|
pull: true
|
||||||
|
volumes:
|
||||||
|
- "{{ flaresolverr_config_directory }}:/config:rw"
|
||||||
|
ports:
|
||||||
|
- "{{ flaresolverr_port }}:5050"
|
||||||
|
env:
|
||||||
|
TZ: "{{ ansible_nas_timezone }}"
|
||||||
|
PUID: "{{ flaresolverr_user_id }}"
|
||||||
|
PGID: "{{ flaresolverr_group_id }}"
|
||||||
|
restart_policy: unless-stopped
|
||||||
|
memory: "{{ flaresolverr_memory }}"
|
||||||
|
labels:
|
||||||
|
traefik.enable: "{{ flaresolverr_available_externally | string }}"
|
||||||
|
traefik.http.routers.flaresolverr.rule: "Host(`flaresolverr.{{ ansible_nas_domain }}`)"
|
||||||
|
traefik.http.routers.flaresolverr.tls.certresolver: "letsencrypt"
|
||||||
|
traefik.http.routers.flaresolverr.tls.domains[0].main: "{{ ansible_nas_domain }}"
|
||||||
|
traefik.http.routers.flaresolverr.tls.domains[0].sans: "*.{{ ansible_nas_domain }}"
|
||||||
|
traefik.http.services.flaresolverr.loadbalancer.server.port: "5050"
|
||||||
|
when: flaresolverr_enabled is true
|
||||||
|
|
||||||
|
- name: Stop FlareSolverr
|
||||||
|
block:
|
||||||
|
- name: Stop FlareSolverr
|
||||||
|
community.docker.docker_container:
|
||||||
|
name: "{{ flaresolverr_container_name }}"
|
||||||
|
state: absent
|
||||||
|
when: flaresolverr_enabled is false
|
Loading…
Reference in a new issue