diff --git a/README.md b/README.md index 8f26199d..6b8c02b3 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,7 @@ Ansible config and a bunch of Docker containers. * [openHAB](https://www.openhab.org/) - A vendor and technology agnostic open source automation software for your home * [Plex](https://www.plex.tv/) - Plex Media Server * [Portainer](https://portainer.io/) - for managing Docker and running custom images +* [Prowlarr](https://github.com/Prowlarr/Prowlarr) - Indexer aggregator for Sonarr, Radarr, Lidarr, etc. * [pyLoad](https://pyload.net/) - A download manager with a friendly web-interface * [PyTivo](http://pytivo.org) - An HMO and GoBack server for TiVos. * [Radarr](https://radarr.video/) - for organising and downloading movies diff --git a/docs/applications/prowlarr.md b/docs/applications/prowlarr.md new file mode 100644 index 00000000..dc01440d --- /dev/null +++ b/docs/applications/prowlarr.md @@ -0,0 +1,15 @@ +# Prowlarr +Homepages: [prowlarr](https://github.com/Prowlarr/Prowlarr) + +**Prowlarr** is a indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Sonarr, Radarr, Lidarr, and Readarr offering complete management of your indexers with no per app Indexer setup required (we do it all). + +## Usage + +Set `prowlarr_enabled: true` in your `/inventories/[my inventory]/group_vars/nas.yml` file. + +The Prowlarr web interface can be found at `http://ansible_nas_host_or_ip:9696` by default + + +## Specific Configuration + +For comprehensive configuration instructions see the [Prowlarr wiki](https://wiki.servarr.com/prowlarr) or [Prowlarr Github page](https://github.com/Prowlarr/Prowlarr) diff --git a/docs/configuration/application_ports.md b/docs/configuration/application_ports.md index 2944a814..f98cb74c 100644 --- a/docs/configuration/application_ports.md +++ b/docs/configuration/application_ports.md @@ -58,6 +58,7 @@ By default, applications can be found on the ports listed below. | Organizr | 10444 | Bridge | HTTPS | | Plex | 32400 | Bridge | HTTP | | Portainer | 9000 | Bridge | HTTP | +| Prowlarr | 9696 | Bridge | HTTP | | pyload | 8000 | Bridge | HTTP | | PyTivo | 9032 | Bridge | HTTP | | PyTivo | 2190 | Bridge | UDP | diff --git a/nas.yml b/nas.yml index c3db9849..44fee084 100644 --- a/nas.yml +++ b/nas.yml @@ -198,6 +198,11 @@ - portainer when: (portainer_enabled | default(False)) + - role: prowlarr + tags: + - prowlarr + when: (prowlarr_enabled | default(False)) + - role: pyload tags: - pyload diff --git a/roles/prowlarr/defaults/main.yml b/roles/prowlarr/defaults/main.yml new file mode 100644 index 00000000..b1021c2e --- /dev/null +++ b/roles/prowlarr/defaults/main.yml @@ -0,0 +1,17 @@ +--- +prowlarr_enabled: false +prowlarr_available_externally: "false" + +# directories +prowlarr_data_directory: "{{ docker_home }}/prowlarr/config" + +# uid / gid +prowlarr_user_id: "0" +prowlarr_group_id: "0" + +# network +prowlarr_port: "9696" +prowlarr_hostname: "prowlarr" + +# specs +prowlarr_memory: 1g diff --git a/roles/prowlarr/tasks/main.yml b/roles/prowlarr/tasks/main.yml new file mode 100644 index 00000000..2d3aa099 --- /dev/null +++ b/roles/prowlarr/tasks/main.yml @@ -0,0 +1,30 @@ +--- +- name: Create Prowlarr Directories + file: + path: "{{ item }}" + state: directory + with_items: + - "{{ prowlarr_data_directory }}" + +- name: prowlarr + docker_container: + name: prowlarr + image: ghcr.io/linuxserver/prowlarr:develop + pull: true + volumes: + - "{{ prowlarr_data_directory }}:/config:rw" + ports: + - "{{ prowlarr_port }}:9696" + env: + TZ: "{{ ansible_nas_timezone }}" + PUID: "{{ prowlarr_user_id }}" + PGID: "{{ prowlarr_group_id }}" + restart_policy: unless-stopped + memory: "{{ prowlarr_memory }}" + labels: + traefik.enable: "{{ prowlarr_available_externally }}" + traefik.http.routers.prowlarr.rule: "Host(`{{ prowlarr_hostname }}.{{ ansible_nas_domain }}`)" + traefik.http.routers.prowlarr.tls.certresolver: "letsencrypt" + traefik.http.routers.prowlarr.tls.domains[0].main: "{{ ansible_nas_domain }}" + traefik.http.routers.prowlarr.tls.domains[0].sans: "*.{{ ansible_nas_domain }}" + traefik.http.services.prowlarr.loadbalancer.server.port: "9696"