diff --git a/README.md b/README.md index 7265a712..6d65051e 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ Ansible config and a bunch of Docker containers. * [NZBget](https://nzbget.net/) - The most efficient usenet downloader * [Plex](https://www.plex.tv/) - Plex Media Server * [Portainer](https://portainer.io/) - for managing Docker and running custom images +* [pyLoad](https://pyload.net/) - A download manager with a friendly web-interface * [Radarr](https://radarr.video/) - for organising and downloading movies * [Sickchill](https://sickchill.github.io/) - for managing TV episodes * [Sonarr](https://sonarr.tv/) - for downloading and managing TV episodes diff --git a/docs/applications/pyload.md b/docs/applications/pyload.md new file mode 100644 index 00000000..c4e537b6 --- /dev/null +++ b/docs/applications/pyload.md @@ -0,0 +1,17 @@ +# pyLoad + +Homepage: [https://pyload.net/](https://pyload.net//) + +Free and Open Source download manager written in Python and designed to be extremely lightweight, easily extensible and fully manageable via web +. +## Usage + +Set `pyload_enabled: true` in your `group_vars/all.yml` file. + +pyLoad's web interface can be found at http://ansible_nas_host_or_ip:8000 + +## Specific Configuration + +Default username is `pyload` and default password is `pyload`. + +In order to add or remove users, you will need to access the container from an interactive shell (can easily be done from portainer, if installed) and enter pyLoad's home directory `/opt/pyload` and using the command `python pyLoadCore.py -u` and follow the on-screen prompts. More commands to configure and customize pyLoad can be found on it's website. diff --git a/docs/configuration/application_ports.md b/docs/configuration/application_ports.md index c958bbb4..08fd7fa2 100644 --- a/docs/configuration/application_ports.md +++ b/docs/configuration/application_ports.md @@ -27,6 +27,7 @@ By default, applications can be found on the ports listed below. | NZBGet | 6789 | | | Plex | 32400 | | | Portainer | 9000 | | +| pyload | 8000 | | | Radarr | 7878 | | | Sickchill | 8081 | | | Sonarr | 8989 | | diff --git a/group_vars/all.yml.dist b/group_vars/all.yml.dist index 1b4e76e2..93ff1022 100644 --- a/group_vars/all.yml.dist +++ b/group_vars/all.yml.dist @@ -17,6 +17,9 @@ transmission_with_openvpn_enabled: false transmission_enabled: false nzbget_enabled: false +# Downloaders +pyload_enabled: false + # Plex plex_enabled: false tautulli_enabled: false @@ -290,6 +293,14 @@ transmission_user_id: 0 transmission_group_id: 0 transmission_local_network: "192.168.1.0/24" +### +### pyLoad +### +pyload_available_externally: "false" +pyload_config_directory: "{{ docker_home }}/pyload" +pyload_download_directory: "{{ downloads_root }}" +pyload_user_id: 0 +pyload_group_id: 0 ### ### Plex diff --git a/nas.yml b/nas.yml index 383f9992..3754eea6 100644 --- a/nas.yml +++ b/nas.yml @@ -68,6 +68,10 @@ when: (transmission_with_openvpn_enabled | default(False)) tags: transmission + - import_tasks: tasks/pyload.yml + when: (pyload_enabled | default(False)) + tags: pyload + - import_tasks: tasks/thelounge.yml when: (thelounge_enabled | default(False)) tags: thelounge diff --git a/tasks/pyload.yml b/tasks/pyload.yml new file mode 100644 index 00000000..379e22a7 --- /dev/null +++ b/tasks/pyload.yml @@ -0,0 +1,31 @@ +--- +- name: Create pyLoad Directories + file: + path: "{{ item }}" + state: directory + # mode: 0755 + with_items: + - "{{ pyload_config_directory }}" + - "{{ pyload_download_directory }}" + +- name: pyLoad Docker Container + docker_container: + name: pyload + image: writl/pyload + pull: true + volumes: + - "{{ pyload_config_directory }}:/opt/pyload/pyload-config:rw" + - "{{ pyload_download_directory }}:/opt/pyload/Downloads:rw" + ports: + - "8000:8000" + env: + TZ: "{{ ansible_nas_timezone }}" + UID: "{{ pyload_user_id }}" + GID: "{{ pyload_group_id }}" + restart_policy: unless-stopped + memory: 1g + labels: + traefik.backend: "pyload" + traefik.frontend.rule: "Host:pyload.{{ ansible_nas_domain }}" + traefik.enable: "{{ pyload_available_externally }}" + traefik.port: "8000" diff --git a/templates/traefik/traefik.toml b/templates/traefik/traefik.toml index 2c5b3876..c22832eb 100644 --- a/templates/traefik/traefik.toml +++ b/templates/traefik/traefik.toml @@ -197,6 +197,7 @@ onDemand = false # create certificate when container is created "nzbget.{{ ansible_nas_domain }}", "plex.{{ ansible_nas_domain }}", "portainer.{{ ansible_nas_domain }}", + "pyload.{{ ansible_nas_domain }}", "radarr.{{ ansible_nas_domain }}", "sickchill.{{ ansible_nas_domain }}", "sonarr.{{ ansible_nas_domain }}",