From 10cdb1909b42b35c48d89f4a947c51f137597794 Mon Sep 17 00:00:00 2001 From: giosann Date: Sat, 12 Sep 2020 00:37:18 +0200 Subject: [PATCH 01/19] added trasmission main --- roles/transmission/tasks/main.yml | 78 +++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 roles/transmission/tasks/main.yml diff --git a/roles/transmission/tasks/main.yml b/roles/transmission/tasks/main.yml new file mode 100644 index 000000000..84c2f72b4 --- /dev/null +++ b/roles/transmission/tasks/main.yml @@ -0,0 +1,78 @@ +######################################################################### +# Title: Community: Transmission # +# Author(s): giosann # +# URL: https://github.com/Cloudbox/Community # +# Docker Image(s): linuxserver/trasmission # +# -- # +# Part of the Cloudbox project: https://cloudbox.works # +######################################################################### +# GNU General Public License v3.0 # +#########################################################################--- +- name: "Setting CloudFlare DNS Record" + include_role: + name: cloudflare-dns + vars: + record: transmission + when: cloudflare_enabled + +- name: Stop and remove any existing container + docker_container: + name: transmission + state: absent + +- name: Create transmission directories + file: "path={{ item }} state=directory mode=0775 owner={{ user.name }} group={{ user.name }}" + with_items: + - /opt/transmission + +- name: Create new downloads directories + file: "path={{ item }} state=directory mode=0775 owner={{ user.name }} group={{ user.name }} recurse=yes" + with_items: + - "{{ downloads.torrents }}" + - "{{ downloads.torrents }}/transmission" + - "{{ downloads.torrents }}/transmission/completed" + - "{{ downloads.torrents }}/transmission/incoming" + - "{{ downloads.torrents }}/transmission/watched" + - "{{ downloads.torrents }}/transmission/torrents" + - /opt/transmission/ + when: (torrents_downloads_path is defined)|default(false) + +- name: Set default_volumes variable + set_fact: + default_volumes: + - "/mnt:/mnt" + - "/opt/transmission:/opt/transmission" + - "/mnt/local/downloads/torrents/transmission:/data" + - "/opt/transmission:/config" + +- name: Create and start container + docker_container: + name: transmission + image: linuxserver/transmission + pull: yes + env: + PUID: "{{ uid }}" + PGID: "{{ gid }}" + VIRTUAL_HOST: "transmission.{{ user.domain }}" + VIRTUAL_PORT: "9091" + LETSENCRYPT_HOST: "transmission.{{ user.domain }}" + LETSENCRYPT_EMAIL: "{{ user.email }}" + UMASK_SET: "002" + TRANSMISSION_ALT_SPEED_DOWN: "30" + TRANSMISSION_RATIO_LIMIT: "0" + TRANSMISSION_RATIO_LIMIT_ENABLED: "true" + TRANSMISSION_WATCH_DIR_ENABLED: "false" + TRANSMISSION_HOME: "/opt/transmission" + TZ: "{{ tz }}" + volumes: "{{ default_volumes + torrents_downloads_path|default([]) }}" + labels: + "com.github.cloudbox.cloudbox_managed": "true" + capabilities: + - NET_ADMIN + networks: + - name: cloudbox + aliases: + - transmission + purge_networks: yes + restart_policy: always + state: started \ No newline at end of file From 68924e02bffb09a9c7c0b582ce1a668dc92dac0d Mon Sep 17 00:00:00 2001 From: giosann Date: Sat, 12 Sep 2020 00:46:32 +0200 Subject: [PATCH 02/19] finished adding transmission role --- appveyor.yml | 1 + community.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/appveyor.yml b/appveyor.yml index 67c3061ea..afc9d1852 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -88,6 +88,7 @@ environment: synclounge tdarr thelounge + transmission transmissionvpn ubooquity unifi diff --git a/community.yml b/community.yml index ffcc761a9..c6e7d0cb3 100644 --- a/community.yml +++ b/community.yml @@ -90,6 +90,7 @@ - { role: tdarr, tags: ['tdarr'] } - { role: telly, tags: ['telly'] } - { role: thelounge, tags: ['thelounge'] } + - { role: transmission, tags: ['transmission'] } - { role: transmissionvpn, tags: ['transmissionvpn'] } - { role: ubooquity, tags: ['ubooquity'] } - { role: unifi, tags: ['unifi'] } From 2209f511b2af6fbf20dc37a252d38fe4b5055ee2 Mon Sep 17 00:00:00 2001 From: giosann Date: Sat, 12 Sep 2020 15:12:44 +0200 Subject: [PATCH 03/19] added transmissionx --- defaults/settings.yml.default | 2 + roles/transmissionx/tasks/main.yml | 35 ++++++++++++ roles/transmissionx/tasks/template.yml | 79 ++++++++++++++++++++++++++ 3 files changed, 116 insertions(+) create mode 100644 roles/transmissionx/tasks/main.yml create mode 100644 roles/transmissionx/tasks/template.yml diff --git a/defaults/settings.yml.default b/defaults/settings.yml.default index 0d16455cd..7413d04c0 100644 --- a/defaults/settings.yml.default +++ b/defaults/settings.yml.default @@ -44,5 +44,7 @@ transmissionvpn: vpn_pass: your_vpn_password vpn_prov: NORDVPN vpn_endpoint: Netherlands.ovpn +transmissionx: + roles: [longterm, public] unifi: port: 8080 diff --git a/roles/transmissionx/tasks/main.yml b/roles/transmissionx/tasks/main.yml new file mode 100644 index 000000000..7a93aff5a --- /dev/null +++ b/roles/transmissionx/tasks/main.yml @@ -0,0 +1,35 @@ +######################################################################### +# Title: Community: TransmissionX # +# Author(s): giosann # +# URL: https://github.com/Cloudbox/Community # +# Docker Image(s): linuxserver/trasmission # +# -- # +# Part of the Cloudbox project: https://cloudbox.works # +######################################################################### +# GNU General Public License v3.0 # +#########################################################################--- +--- +- name: "Gather list of transmissionx Docker containers" + shell: "docker ps -a --format '{{ '{{' }} .Names{{ '}}' }}' --filter label=com.github.cloudbox.community=transmissionx | xargs echo -n" + register: cloudbox_community_transmissionx + ignore_errors: yes + +- name: "Stop all transmissionx Docker containers" + shell: "docker stop {{ cloudbox_community_transmissionx.stdout }}" + ignore_errors: yes + when: (cloudbox_community_transmissionx.stdout | trim | length > 0) + +- name: "Remove all transmissionx Docker containers" + shell: "docker rm {{ cloudbox_community_transmissionx.stdout }}" + ignore_errors: yes + when: (cloudbox_community_transmissionx.stdout | trim | length > 0) + +- name: "Execute transmissionx roles" + include_tasks: template.yml + vars: + rolename: "{{ role }}" + roleport: "{{ 9091 + index }}" + with_items: "{{ transmissionx.roles }}" + loop_control: + loop_var: role + index_var: index \ No newline at end of file diff --git a/roles/transmissionx/tasks/template.yml b/roles/transmissionx/tasks/template.yml new file mode 100644 index 000000000..a11af01d6 --- /dev/null +++ b/roles/transmissionx/tasks/template.yml @@ -0,0 +1,79 @@ +######################################################################### +# Title: Community: TransmissionX | Template # +# Author(s): giosann # +# URL: https://github.com/Cloudbox/Community # +# Docker Image(s): linuxserver/trasmission # +# -- # +# Part of the Cloudbox project: https://cloudbox.works # +######################################################################### +# GNU General Public License v3.0 # +#########################################################################--- +--- +- name: "Install named transmission role" + debug: + msg: "Installing {{ rolename }} using port {{ roleport }}" + +- name: "Set DNS Record on CloudFlare" + include_role: + name: cloudflare-dns + vars: + record: "transmission{{ rolename }}" + when: cloudflare_enabled + +- name: Create transmissionx directories + file: "path={{ item }} state=directory mode=0775 owner={{ user.name }} group={{ user.name }}" + with_items: + - "/opt/transmission{{ rolename }}" + +- name: Create new downloads directories + file: "path={{ item }} state=directory mode=0775 owner={{ user.name }} group={{ user.name }} recurse=yes" + with_items: + - "{{ downloads.torrents }}" + - "{{ downloads.torrents }}/transmission{{ rolename }}" + - "{{ downloads.torrents }}/transmission{{ rolename }}/completed" + - "{{ downloads.torrents }}/transmission{{ rolename }}/incoming" + - "{{ downloads.torrents }}/transmission{{ rolename }}/watched" + - "{{ downloads.torrents }}/transmission{{ rolename }}/torrents" + - /opt/transmission{{ rolename }}/ + when: (torrents_downloads_path is defined)|default(false) + +- name: Set default_volumes variable + set_fact: + default_volumes: + - "/mnt:/mnt" + - "/opt/transmission{{ rolename }}:/opt/transmission{{ rolename }}" + - "/mnt/local/downloads/torrents/transmission{{ rolename }}:/data" + - "/opt/transmission{{ rolename }}:/config" + +- name: Create and start container + docker_container: + name: "transmission{{ rolename }}" + image: "linuxserver/transmission" + pull: yes + published_ports: + - "127.0.0.1:{{ roleport }}:9091" + env: + TZ: "{{ tz }}" + PUID: "{{ uid }}" + PGID: "{{ gid }}" + VIRTUAL_HOST: "transmission{{ rolename }}.{{ user.domain }}" + VIRTUAL_PORT: "9091" + LETSENCRYPT_HOST: "transmission{{ rolename }}.{{ user.domain }}" + LETSENCRYPT_EMAIL: "{{ user.email }}" + UMASK_SET: "002" + TRANSMISSION_ALT_SPEED_DOWN: "30" + TRANSMISSION_RATIO_LIMIT: "0" + TRANSMISSION_RATIO_LIMIT_ENABLED: "true" + TRANSMISSION_WATCH_DIR_ENABLED: "false" + TRANSMISSION_HOME: "/opt/transmission{{ rolename }}" + volumes: "{{ default_volumes + torrents_downloads_path|default([]) }}" + labels: + "com.github.cloudbox.cloudbox_managed": "true" + "com.github.cloudbox.community": "transmissionx" + networks: + - name: cloudbox + aliases: + - "transmission{{ rolename }}" + purge_networks: yes + restart_policy: always + state: started \ No newline at end of file From c5b9e28a8849c6cf290a04ae21b72261cb6ec347 Mon Sep 17 00:00:00 2001 From: giosann Date: Sat, 12 Sep 2020 15:17:26 +0200 Subject: [PATCH 04/19] updated readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index a5670a338..fe4cfd468 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,9 @@ Community Repository for Unofficial Cloudbox Add-ons - **[speedtest](https://github.com/adolfintel/speedtest)** - Self-hosted HTML5 Speedtest - **subsonic** - **[telly](../../wiki/Telly)** +- **[transmission](../../wiki/transmission)** - **[transmissionvpn](https://github.com/haugene/docker-transmission-openvpn)** +- **[transmissionx](../../wiki/transmissionx)** - **ubooquity** - comics server and online reader (ubooquity.your.server/ubooquity for main page / your.ip:2203/ubooquity/admin for admin) - **[wallabag](https://wallabag.org/en)** 0 Wallabag role (default u/p wallabag/wallabag) - Save and classify websites and articles. - **[Wordpress](../../wiki/Wordpress)** - Wordpress deployment From 6fce3c0c7662e9553ca7ce61c7ba91f62cdf0e31 Mon Sep 17 00:00:00 2001 From: giosann Date: Sat, 12 Sep 2020 16:24:09 +0200 Subject: [PATCH 05/19] update --- README.md | 4 ++-- appveyor.yml | 1 + community.yml | 1 + roles/transmission/tasks/main.yml | 5 +++-- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index fe4cfd468..f33bf30c0 100644 --- a/README.md +++ b/README.md @@ -57,9 +57,9 @@ Community Repository for Unofficial Cloudbox Add-ons - **[speedtest](https://github.com/adolfintel/speedtest)** - Self-hosted HTML5 Speedtest - **subsonic** - **[telly](../../wiki/Telly)** -- **[transmission](../../wiki/transmission)** +- **[transmission](../../wiki/transmission)** - lightweight torrent client - **[transmissionvpn](https://github.com/haugene/docker-transmission-openvpn)** -- **[transmissionx](../../wiki/transmissionx)** +- **[transmissionx](../../wiki/transmissionx)** - transmission role to create multiple roles - **ubooquity** - comics server and online reader (ubooquity.your.server/ubooquity for main page / your.ip:2203/ubooquity/admin for admin) - **[wallabag](https://wallabag.org/en)** 0 Wallabag role (default u/p wallabag/wallabag) - Save and classify websites and articles. - **[Wordpress](../../wiki/Wordpress)** - Wordpress deployment diff --git a/appveyor.yml b/appveyor.yml index afc9d1852..13d8a0ccf 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -90,6 +90,7 @@ environment: thelounge transmission transmissionvpn + transmissionx ubooquity unifi unmanic diff --git a/community.yml b/community.yml index c6e7d0cb3..b37203f91 100644 --- a/community.yml +++ b/community.yml @@ -92,6 +92,7 @@ - { role: thelounge, tags: ['thelounge'] } - { role: transmission, tags: ['transmission'] } - { role: transmissionvpn, tags: ['transmissionvpn'] } + - { role: transmissionx, tags: ['transmissionx'] } - { role: ubooquity, tags: ['ubooquity'] } - { role: unifi, tags: ['unifi'] } - { role: unmanic, tags: ['unmanic'] } diff --git a/roles/transmission/tasks/main.yml b/roles/transmission/tasks/main.yml index 84c2f72b4..0a722bb1c 100644 --- a/roles/transmission/tasks/main.yml +++ b/roles/transmission/tasks/main.yml @@ -7,7 +7,8 @@ # Part of the Cloudbox project: https://cloudbox.works # ######################################################################### # GNU General Public License v3.0 # -#########################################################################--- +######################################################################### +--- - name: "Setting CloudFlare DNS Record" include_role: name: cloudflare-dns @@ -75,4 +76,4 @@ - transmission purge_networks: yes restart_policy: always - state: started \ No newline at end of file + state: started From 6743ce7d645ae92da3d19af1d02bdc807dd8c524 Mon Sep 17 00:00:00 2001 From: giosann Date: Sat, 12 Sep 2020 20:50:40 +0200 Subject: [PATCH 06/19] added default login, watch directory, disabled RPC whitelist --- roles/transmission/tasks/main.yml | 5 +++++ roles/transmissionx/tasks/template.yml | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/roles/transmission/tasks/main.yml b/roles/transmission/tasks/main.yml index 0a722bb1c..c52d52787 100644 --- a/roles/transmission/tasks/main.yml +++ b/roles/transmission/tasks/main.yml @@ -63,7 +63,12 @@ TRANSMISSION_RATIO_LIMIT: "0" TRANSMISSION_RATIO_LIMIT_ENABLED: "true" TRANSMISSION_WATCH_DIR_ENABLED: "false" + TRANSMISSION_WATCH_DIR: "/data/watched" TRANSMISSION_HOME: "/opt/transmission" + TRANSMISSION_RPC_AUTHENTICATION_REQUIRED: "true" + USER: "{{ user.name }}" + PASS: "{{ user.pass }}" + TRANSMISSION_RPC_WHITELIST_ENABLED: "false" TZ: "{{ tz }}" volumes: "{{ default_volumes + torrents_downloads_path|default([]) }}" labels: diff --git a/roles/transmissionx/tasks/template.yml b/roles/transmissionx/tasks/template.yml index a11af01d6..3e20b5e94 100644 --- a/roles/transmissionx/tasks/template.yml +++ b/roles/transmissionx/tasks/template.yml @@ -65,7 +65,13 @@ TRANSMISSION_RATIO_LIMIT: "0" TRANSMISSION_RATIO_LIMIT_ENABLED: "true" TRANSMISSION_WATCH_DIR_ENABLED: "false" + TRANSMISSION_WATCH_DIR: "/data/watched" TRANSMISSION_HOME: "/opt/transmission{{ rolename }}" + TRANSMISSION_RPC_AUTHENTICATION_REQUIRED: "true" + USER: "{{ user.name }}" + PASS: "{{ user.pass }}" + TRANSMISSION_RPC_WHITELIST_ENABLED: "false" + volumes: "{{ default_volumes + torrents_downloads_path|default([]) }}" labels: "com.github.cloudbox.cloudbox_managed": "true" From 34e1e88f71f475d9d2c33d26f67a5f1ff636b44d Mon Sep 17 00:00:00 2001 From: giosann Date: Sat, 12 Sep 2020 21:28:52 +0200 Subject: [PATCH 07/19] fixed file endings --- roles/transmissionx/tasks/main.yml | 4 ++-- roles/transmissionx/tasks/template.yml | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/roles/transmissionx/tasks/main.yml b/roles/transmissionx/tasks/main.yml index 7a93aff5a..401d7b3b1 100644 --- a/roles/transmissionx/tasks/main.yml +++ b/roles/transmissionx/tasks/main.yml @@ -7,7 +7,7 @@ # Part of the Cloudbox project: https://cloudbox.works # ######################################################################### # GNU General Public License v3.0 # -#########################################################################--- +######################################################################### --- - name: "Gather list of transmissionx Docker containers" shell: "docker ps -a --format '{{ '{{' }} .Names{{ '}}' }}' --filter label=com.github.cloudbox.community=transmissionx | xargs echo -n" @@ -32,4 +32,4 @@ with_items: "{{ transmissionx.roles }}" loop_control: loop_var: role - index_var: index \ No newline at end of file + index_var: index diff --git a/roles/transmissionx/tasks/template.yml b/roles/transmissionx/tasks/template.yml index 3e20b5e94..64fbb6fdf 100644 --- a/roles/transmissionx/tasks/template.yml +++ b/roles/transmissionx/tasks/template.yml @@ -7,7 +7,7 @@ # Part of the Cloudbox project: https://cloudbox.works # ######################################################################### # GNU General Public License v3.0 # -#########################################################################--- +######################################################################### --- - name: "Install named transmission role" debug: @@ -82,4 +82,5 @@ - "transmission{{ rolename }}" purge_networks: yes restart_policy: always - state: started \ No newline at end of file + state: started + From 89fff967142f1efd9977d1c4ccb774b7e5dc0ff7 Mon Sep 17 00:00:00 2001 From: giosann Date: Sat, 12 Sep 2020 22:16:37 +0200 Subject: [PATCH 08/19] added default download directoy and default incomplete directory --- roles/transmission/tasks/main.yml | 2 ++ roles/transmissionx/tasks/template.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/roles/transmission/tasks/main.yml b/roles/transmission/tasks/main.yml index c52d52787..de4e8616f 100644 --- a/roles/transmission/tasks/main.yml +++ b/roles/transmission/tasks/main.yml @@ -65,6 +65,8 @@ TRANSMISSION_WATCH_DIR_ENABLED: "false" TRANSMISSION_WATCH_DIR: "/data/watched" TRANSMISSION_HOME: "/opt/transmission" + TRANSMISSION_DOWNLOAD_DIR: "/data/completed" + TRANSMISSION_INCOMPLETE_DIR: "/data/incoming" TRANSMISSION_RPC_AUTHENTICATION_REQUIRED: "true" USER: "{{ user.name }}" PASS: "{{ user.pass }}" diff --git a/roles/transmissionx/tasks/template.yml b/roles/transmissionx/tasks/template.yml index 64fbb6fdf..7a65a6d1a 100644 --- a/roles/transmissionx/tasks/template.yml +++ b/roles/transmissionx/tasks/template.yml @@ -67,6 +67,8 @@ TRANSMISSION_WATCH_DIR_ENABLED: "false" TRANSMISSION_WATCH_DIR: "/data/watched" TRANSMISSION_HOME: "/opt/transmission{{ rolename }}" + TRANSMISSION_DOWNLOAD_DIR: "/data/completed" + TRANSMISSION_INCOMPLETE_DIR: "/data/incoming" TRANSMISSION_RPC_AUTHENTICATION_REQUIRED: "true" USER: "{{ user.name }}" PASS: "{{ user.pass }}" From 3504da491ee85979f30ce8b243d609afe279319f Mon Sep 17 00:00:00 2001 From: giosann Date: Sat, 12 Sep 2020 22:20:06 +0200 Subject: [PATCH 09/19] correctly added previous commit --- roles/transmission/tasks/main.yml | 1 + roles/transmissionx/tasks/template.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/roles/transmission/tasks/main.yml b/roles/transmission/tasks/main.yml index de4e8616f..2964e4d76 100644 --- a/roles/transmission/tasks/main.yml +++ b/roles/transmission/tasks/main.yml @@ -67,6 +67,7 @@ TRANSMISSION_HOME: "/opt/transmission" TRANSMISSION_DOWNLOAD_DIR: "/data/completed" TRANSMISSION_INCOMPLETE_DIR: "/data/incoming" + TRANSMISSION_INCOMPLETE_DIR_ENABLE: "false" TRANSMISSION_RPC_AUTHENTICATION_REQUIRED: "true" USER: "{{ user.name }}" PASS: "{{ user.pass }}" diff --git a/roles/transmissionx/tasks/template.yml b/roles/transmissionx/tasks/template.yml index 7a65a6d1a..8668404da 100644 --- a/roles/transmissionx/tasks/template.yml +++ b/roles/transmissionx/tasks/template.yml @@ -69,6 +69,7 @@ TRANSMISSION_HOME: "/opt/transmission{{ rolename }}" TRANSMISSION_DOWNLOAD_DIR: "/data/completed" TRANSMISSION_INCOMPLETE_DIR: "/data/incoming" + TRANSMISSION_INCOMPLETE_DIR_ENABLE: "false" TRANSMISSION_RPC_AUTHENTICATION_REQUIRED: "true" USER: "{{ user.name }}" PASS: "{{ user.pass }}" From c5e07d8c8a2a7fd361c8d18d65eb255b9b830f10 Mon Sep 17 00:00:00 2001 From: giosann Date: Sat, 12 Sep 2020 22:35:45 +0200 Subject: [PATCH 10/19] removed non working secondary environment variables --- roles/transmission/tasks/main.yml | 11 ++--------- roles/transmissionx/tasks/template.yml | 8 -------- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/roles/transmission/tasks/main.yml b/roles/transmission/tasks/main.yml index 2964e4d76..00939e882 100644 --- a/roles/transmission/tasks/main.yml +++ b/roles/transmission/tasks/main.yml @@ -52,6 +52,7 @@ image: linuxserver/transmission pull: yes env: + TZ: "{{ tz }}" PUID: "{{ uid }}" PGID: "{{ gid }}" VIRTUAL_HOST: "transmission.{{ user.domain }}" @@ -59,20 +60,12 @@ LETSENCRYPT_HOST: "transmission.{{ user.domain }}" LETSENCRYPT_EMAIL: "{{ user.email }}" UMASK_SET: "002" - TRANSMISSION_ALT_SPEED_DOWN: "30" - TRANSMISSION_RATIO_LIMIT: "0" - TRANSMISSION_RATIO_LIMIT_ENABLED: "true" - TRANSMISSION_WATCH_DIR_ENABLED: "false" - TRANSMISSION_WATCH_DIR: "/data/watched" TRANSMISSION_HOME: "/opt/transmission" - TRANSMISSION_DOWNLOAD_DIR: "/data/completed" - TRANSMISSION_INCOMPLETE_DIR: "/data/incoming" - TRANSMISSION_INCOMPLETE_DIR_ENABLE: "false" TRANSMISSION_RPC_AUTHENTICATION_REQUIRED: "true" USER: "{{ user.name }}" PASS: "{{ user.pass }}" TRANSMISSION_RPC_WHITELIST_ENABLED: "false" - TZ: "{{ tz }}" + volumes: "{{ default_volumes + torrents_downloads_path|default([]) }}" labels: "com.github.cloudbox.cloudbox_managed": "true" diff --git a/roles/transmissionx/tasks/template.yml b/roles/transmissionx/tasks/template.yml index 8668404da..bac91efa8 100644 --- a/roles/transmissionx/tasks/template.yml +++ b/roles/transmissionx/tasks/template.yml @@ -61,15 +61,7 @@ LETSENCRYPT_HOST: "transmission{{ rolename }}.{{ user.domain }}" LETSENCRYPT_EMAIL: "{{ user.email }}" UMASK_SET: "002" - TRANSMISSION_ALT_SPEED_DOWN: "30" - TRANSMISSION_RATIO_LIMIT: "0" - TRANSMISSION_RATIO_LIMIT_ENABLED: "true" - TRANSMISSION_WATCH_DIR_ENABLED: "false" - TRANSMISSION_WATCH_DIR: "/data/watched" TRANSMISSION_HOME: "/opt/transmission{{ rolename }}" - TRANSMISSION_DOWNLOAD_DIR: "/data/completed" - TRANSMISSION_INCOMPLETE_DIR: "/data/incoming" - TRANSMISSION_INCOMPLETE_DIR_ENABLE: "false" TRANSMISSION_RPC_AUTHENTICATION_REQUIRED: "true" USER: "{{ user.name }}" PASS: "{{ user.pass }}" From 09c54135fff414e16c099345348a85113d03af91 Mon Sep 17 00:00:00 2001 From: Giorgio Date: Sun, 13 Sep 2020 13:28:41 +0200 Subject: [PATCH 11/19] removed transmission leaving only transmissionx with one default instance --- README.md | 3 +- appveyor.yml | 1 - community.yml | 1 - defaults/settings.yml.default | 2 +- roles/transmission/tasks/main.yml | 80 ------------------------------- 5 files changed, 2 insertions(+), 85 deletions(-) delete mode 100644 roles/transmission/tasks/main.yml diff --git a/README.md b/README.md index f33bf30c0..0ede31b46 100644 --- a/README.md +++ b/README.md @@ -57,9 +57,8 @@ Community Repository for Unofficial Cloudbox Add-ons - **[speedtest](https://github.com/adolfintel/speedtest)** - Self-hosted HTML5 Speedtest - **subsonic** - **[telly](../../wiki/Telly)** -- **[transmission](../../wiki/transmission)** - lightweight torrent client - **[transmissionvpn](https://github.com/haugene/docker-transmission-openvpn)** -- **[transmissionx](../../wiki/transmissionx)** - transmission role to create multiple roles +- **[transmissionx](../../wiki/transmissionx)** - lightweight torrent client - role to create multiple roles (default is one) - **ubooquity** - comics server and online reader (ubooquity.your.server/ubooquity for main page / your.ip:2203/ubooquity/admin for admin) - **[wallabag](https://wallabag.org/en)** 0 Wallabag role (default u/p wallabag/wallabag) - Save and classify websites and articles. - **[Wordpress](../../wiki/Wordpress)** - Wordpress deployment diff --git a/appveyor.yml b/appveyor.yml index 13d8a0ccf..3e9028422 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -88,7 +88,6 @@ environment: synclounge tdarr thelounge - transmission transmissionvpn transmissionx ubooquity diff --git a/community.yml b/community.yml index b37203f91..50c5cae18 100644 --- a/community.yml +++ b/community.yml @@ -90,7 +90,6 @@ - { role: tdarr, tags: ['tdarr'] } - { role: telly, tags: ['telly'] } - { role: thelounge, tags: ['thelounge'] } - - { role: transmission, tags: ['transmission'] } - { role: transmissionvpn, tags: ['transmissionvpn'] } - { role: transmissionx, tags: ['transmissionx'] } - { role: ubooquity, tags: ['ubooquity'] } diff --git a/defaults/settings.yml.default b/defaults/settings.yml.default index 7413d04c0..9be7b634b 100644 --- a/defaults/settings.yml.default +++ b/defaults/settings.yml.default @@ -45,6 +45,6 @@ transmissionvpn: vpn_prov: NORDVPN vpn_endpoint: Netherlands.ovpn transmissionx: - roles: [longterm, public] + roles: [""] unifi: port: 8080 diff --git a/roles/transmission/tasks/main.yml b/roles/transmission/tasks/main.yml deleted file mode 100644 index 00939e882..000000000 --- a/roles/transmission/tasks/main.yml +++ /dev/null @@ -1,80 +0,0 @@ -######################################################################### -# Title: Community: Transmission # -# Author(s): giosann # -# URL: https://github.com/Cloudbox/Community # -# Docker Image(s): linuxserver/trasmission # -# -- # -# Part of the Cloudbox project: https://cloudbox.works # -######################################################################### -# GNU General Public License v3.0 # -######################################################################### ---- -- name: "Setting CloudFlare DNS Record" - include_role: - name: cloudflare-dns - vars: - record: transmission - when: cloudflare_enabled - -- name: Stop and remove any existing container - docker_container: - name: transmission - state: absent - -- name: Create transmission directories - file: "path={{ item }} state=directory mode=0775 owner={{ user.name }} group={{ user.name }}" - with_items: - - /opt/transmission - -- name: Create new downloads directories - file: "path={{ item }} state=directory mode=0775 owner={{ user.name }} group={{ user.name }} recurse=yes" - with_items: - - "{{ downloads.torrents }}" - - "{{ downloads.torrents }}/transmission" - - "{{ downloads.torrents }}/transmission/completed" - - "{{ downloads.torrents }}/transmission/incoming" - - "{{ downloads.torrents }}/transmission/watched" - - "{{ downloads.torrents }}/transmission/torrents" - - /opt/transmission/ - when: (torrents_downloads_path is defined)|default(false) - -- name: Set default_volumes variable - set_fact: - default_volumes: - - "/mnt:/mnt" - - "/opt/transmission:/opt/transmission" - - "/mnt/local/downloads/torrents/transmission:/data" - - "/opt/transmission:/config" - -- name: Create and start container - docker_container: - name: transmission - image: linuxserver/transmission - pull: yes - env: - TZ: "{{ tz }}" - PUID: "{{ uid }}" - PGID: "{{ gid }}" - VIRTUAL_HOST: "transmission.{{ user.domain }}" - VIRTUAL_PORT: "9091" - LETSENCRYPT_HOST: "transmission.{{ user.domain }}" - LETSENCRYPT_EMAIL: "{{ user.email }}" - UMASK_SET: "002" - TRANSMISSION_HOME: "/opt/transmission" - TRANSMISSION_RPC_AUTHENTICATION_REQUIRED: "true" - USER: "{{ user.name }}" - PASS: "{{ user.pass }}" - TRANSMISSION_RPC_WHITELIST_ENABLED: "false" - - volumes: "{{ default_volumes + torrents_downloads_path|default([]) }}" - labels: - "com.github.cloudbox.cloudbox_managed": "true" - capabilities: - - NET_ADMIN - networks: - - name: cloudbox - aliases: - - transmission - purge_networks: yes - restart_policy: always - state: started From ebce65fa7296b91b92690bec78d71bea022eef89 Mon Sep 17 00:00:00 2001 From: giosann Date: Sun, 13 Sep 2020 18:27:03 +0200 Subject: [PATCH 12/19] C:\Program Files\Git\watch is hardcoded for some reason - https;\\github.com\linuxserver\docker-transmission\issues\100 --- roles/transmissionx/tasks/template.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/transmissionx/tasks/template.yml b/roles/transmissionx/tasks/template.yml index bac91efa8..dee403223 100644 --- a/roles/transmissionx/tasks/template.yml +++ b/roles/transmissionx/tasks/template.yml @@ -43,6 +43,7 @@ - "/mnt:/mnt" - "/opt/transmission{{ rolename }}:/opt/transmission{{ rolename }}" - "/mnt/local/downloads/torrents/transmission{{ rolename }}:/data" + - "/mnt/local/downloads/torrents/transmission{{ rolename }}/watched:/watch" - "/opt/transmission{{ rolename }}:/config" - name: Create and start container From 52aefe784a17b418583986ded169c0df60419fb5 Mon Sep 17 00:00:00 2001 From: Giorgio Sanna Date: Mon, 14 Sep 2020 15:31:55 +0200 Subject: [PATCH 13/19] added transmission-web-control as web gui --- roles/transmissionx/tasks/template.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/transmissionx/tasks/template.yml b/roles/transmissionx/tasks/template.yml index dee403223..f240f2789 100644 --- a/roles/transmissionx/tasks/template.yml +++ b/roles/transmissionx/tasks/template.yml @@ -63,6 +63,7 @@ LETSENCRYPT_EMAIL: "{{ user.email }}" UMASK_SET: "002" TRANSMISSION_HOME: "/opt/transmission{{ rolename }}" + TRANSMISSION_WEB_HOME: "/transmission-web-control/" TRANSMISSION_RPC_AUTHENTICATION_REQUIRED: "true" USER: "{{ user.name }}" PASS: "{{ user.pass }}" From 4581b24b0c95f44169b425bd3877534b08fc01cb Mon Sep 17 00:00:00 2001 From: giosann Date: Tue, 15 Sep 2020 23:31:21 +0200 Subject: [PATCH 14/19] update download location --- roles/transmissionx/tasks/template.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/roles/transmissionx/tasks/template.yml b/roles/transmissionx/tasks/template.yml index f240f2789..d5e3b40c1 100644 --- a/roles/transmissionx/tasks/template.yml +++ b/roles/transmissionx/tasks/template.yml @@ -42,7 +42,7 @@ default_volumes: - "/mnt:/mnt" - "/opt/transmission{{ rolename }}:/opt/transmission{{ rolename }}" - - "/mnt/local/downloads/torrents/transmission{{ rolename }}:/data" + - "/mnt/local/downloads/torrents/transmission{{ rolename }}:/downloads" - "/mnt/local/downloads/torrents/transmission{{ rolename }}/watched:/watch" - "/opt/transmission{{ rolename }}:/config" From b102d49ce9cb4cfb56f62a6bbe99a5b6784af9ea Mon Sep 17 00:00:00 2001 From: Giorgio Sanna Date: Wed, 16 Sep 2020 10:24:56 +0200 Subject: [PATCH 15/19] updated folders to match default transmission ones --- roles/transmissionx/tasks/template.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/roles/transmissionx/tasks/template.yml b/roles/transmissionx/tasks/template.yml index d5e3b40c1..af5aa0eaa 100644 --- a/roles/transmissionx/tasks/template.yml +++ b/roles/transmissionx/tasks/template.yml @@ -30,10 +30,9 @@ with_items: - "{{ downloads.torrents }}" - "{{ downloads.torrents }}/transmission{{ rolename }}" - - "{{ downloads.torrents }}/transmission{{ rolename }}/completed" - - "{{ downloads.torrents }}/transmission{{ rolename }}/incoming" - - "{{ downloads.torrents }}/transmission{{ rolename }}/watched" - - "{{ downloads.torrents }}/transmission{{ rolename }}/torrents" + - "{{ downloads.torrents }}/transmission{{ rolename }}/complete" + - "{{ downloads.torrents }}/transmission{{ rolename }}/incomplete" + - "{{ downloads.torrents }}/transmission{{ rolename }}/watch" - /opt/transmission{{ rolename }}/ when: (torrents_downloads_path is defined)|default(false) @@ -43,7 +42,7 @@ - "/mnt:/mnt" - "/opt/transmission{{ rolename }}:/opt/transmission{{ rolename }}" - "/mnt/local/downloads/torrents/transmission{{ rolename }}:/downloads" - - "/mnt/local/downloads/torrents/transmission{{ rolename }}/watched:/watch" + - "/mnt/local/downloads/torrents/transmission{{ rolename }}/watch:/watch" - "/opt/transmission{{ rolename }}:/config" - name: Create and start container From 790fcc0b0cb6beb99f0cc8477e10a1bc454dcdd2 Mon Sep 17 00:00:00 2001 From: Giorgio Sanna Date: Wed, 16 Sep 2020 16:50:38 +0200 Subject: [PATCH 16/19] revamped settigs with a setting editing task for sonarr compatibility moving download dir to /downloads/ --- roles/transmissionx/tasks/settings/main.yml | 37 ++++++++ roles/transmissionx/tasks/settings/static.yml | 84 +++++++++++++++++++ roles/transmissionx/tasks/template.yml | 19 ++++- 3 files changed, 138 insertions(+), 2 deletions(-) create mode 100644 roles/transmissionx/tasks/settings/main.yml create mode 100644 roles/transmissionx/tasks/settings/static.yml diff --git a/roles/transmissionx/tasks/settings/main.yml b/roles/transmissionx/tasks/settings/main.yml new file mode 100644 index 000000000..e5862594a --- /dev/null +++ b/roles/transmissionx/tasks/settings/main.yml @@ -0,0 +1,37 @@ +######################################################################### +# Title: transmissionx: Sttings Tasks # +# Author(s): giosann # +# URL: https://github.com/Cloudbox/Community # +# Docker Image(s): linuxserver/trasmission # +# -- # +# Part of the Cloudbox project: https://cloudbox.works # +######################################################################### +# GNU General Public License v3.0 # +######################################################################### +--- +## Checks + +- name: Settings | Wait for 'settings.json' to be created + wait_for: + path: "/opt/transmission{{ rolename }}/settings.json" + state: present + +- name: Settings | Wait for 10 seconds before stopping transmissionx container + wait_for: + timeout: 10 + +- name: Settings | Stop container + docker_container: + name: transmission{{ rolename }} + state: stopped + +## transmissionx Static Settings Tasks + +- name: Settings | transmissionx Static Settings Tasks + include_tasks: "static.yml" + when: (not settings_json.stat.exists) + +- name: Settings | Start container + docker_container: + name: transmission{{ rolename }} + state: started \ No newline at end of file diff --git a/roles/transmissionx/tasks/settings/static.yml b/roles/transmissionx/tasks/settings/static.yml new file mode 100644 index 000000000..b0a439eb9 --- /dev/null +++ b/roles/transmissionx/tasks/settings/static.yml @@ -0,0 +1,84 @@ +######################################################################### +# Title: ruTorrent - Static Settings Tasks # +# Author(s): l3uddz, desimaniac # +# URL: https://github.com/cloudbox/cloudbox # +# Docker Image: horjulf/rutorrent-autodl # +# -- # +# Part of the Cloudbox project: https://cloudbox.works # +######################################################################### +# GNU General Public License v3.0 # +######################################################################### +--- +## rtorrent.rc + +# Disable DHT - i.e. disables trackerless torrents. +- name: Settings | Static | Disable DHT + lineinfile: + path: "/opt/transmission{{ rolename }}/settings.json" + regexp: '^\s*\"dht\-enabled\"\:.*' + line: ' "dht-enabled": false,' + state: present + +# Disable Peer exchange (PEX) - i.e. allows torrents marked private, only. +- name: Settings | Static | Disable PEX + lineinfile: + path: "/opt/transmission{{ rolename }}/settings.json" + regexp: '^\s*\"pex\-enabled\"\:.*' + line: ' "pex-enabled": false,' + state: present + +# Change default download directory - change download directory for sonarr/radarr compatibility. +- name: Settings | Static | Change download-dir + lineinfile: + path: "/opt/transmission{{ rolename }}/settings.json" + regexp: '^\s*\"download\-dir\"\:.*' + line: ' "download-dir": "/downloads/torrents/transmission{{ rolename }}/completed",' + state: present + +# Change default incomplete directory +- name: Settings | Static | Change incomplete-dir + lineinfile: + path: "/opt/transmission{{ rolename }}/settings.json" + regexp: '^\s*\"incomplete\-dir\"\:.*' + line: ' "incomplete-dir": "/downloads/torrents/transmission{{ rolename }}/incomplete",' + state: present + +# Disable incomplete directory +- name: Settings | Static | Disable incomplete-dir + lineinfile: + path: "/opt/transmission{{ rolename }}/settings.json" + regexp: '^\s*\"incomplete\-dir\-enabled\"\:.*' + line: ' "incomplete-dir-enabled": false,' + state: present + +# Maximum number of simultaneous upload slots per torrent +- name: Settings | Static | Set upload-slots-per-torrent + lineinfile: + path: "/opt/transmission{{ rolename }}/settings.json" + regexp: '^\s*\"upload\-slots\-per\-torrent\"\:.*' + line: ' "upload-slots-per-torrent": 50,' + state: present + +# Maximum number of global peers +- name: Settings | Static | Set peer-limit-global + lineinfile: + path: "/opt/transmission{{ rolename }}/settings.json" + regexp: '^\s*\"peer\-limit\-global\"\:.*' + line: ' "peer-limit-global": 1024,' + state: present + +# Allocate disk space +- name: Settings | Static | Disable preallocation + lineinfile: + path: "/opt/transmission{{ rolename }}/settings.json" + regexp: '^\s*\"preallocation\"\:.*' + line: ' "preallocation": 0,' + state: present + +# Allocate disk space +- name: Settings | Static | Set cache-size-mb + lineinfile: + path: "/opt/transmission{{ rolename }}/settings.json" + regexp: '^\s*\"cache\-size\-mb\"\:.*' + line: ' "cache-size-mb": 20,' + state: present \ No newline at end of file diff --git a/roles/transmissionx/tasks/template.yml b/roles/transmissionx/tasks/template.yml index af5aa0eaa..426f27d4a 100644 --- a/roles/transmissionx/tasks/template.yml +++ b/roles/transmissionx/tasks/template.yml @@ -36,14 +36,19 @@ - /opt/transmission{{ rolename }}/ when: (torrents_downloads_path is defined)|default(false) +- name: Check if settings.json exists + stat: + path: "/opt/transmission{{ rolename }}/settings.json" + register: settings_json + - name: Set default_volumes variable set_fact: default_volumes: - "/mnt:/mnt" - "/opt/transmission{{ rolename }}:/opt/transmission{{ rolename }}" - - "/mnt/local/downloads/torrents/transmission{{ rolename }}:/downloads" - - "/mnt/local/downloads/torrents/transmission{{ rolename }}/watch:/watch" - "/opt/transmission{{ rolename }}:/config" + - "/mnt/local/downloads/:/downloads" + - "/mnt/local/downloads/torrents/transmission{{ rolename }}/watch:/watch" - name: Create and start container docker_container: @@ -80,3 +85,13 @@ restart_policy: always state: started +- name: transmissionx Settings Tasks + include_tasks: "settings/main.yml" + vars: + rolename: "{{ role }}" + roleport: "{{ 9091 + index }}" + with_items: "{{ transmissionx.roles }}" + loop_control: + loop_var: role + index_var: index + when: (not continuous_integration) From 8bd8e8c9d3f5fd4fcc4cca99885ae860f90d36e3 Mon Sep 17 00:00:00 2001 From: Giorgio Sanna Date: Wed, 16 Sep 2020 17:29:09 +0200 Subject: [PATCH 17/19] fix --- roles/transmissionx/tasks/settings/main.yml | 2 +- roles/transmissionx/tasks/settings/static.yml | 2 +- roles/transmissionx/tasks/template.yml | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/roles/transmissionx/tasks/settings/main.yml b/roles/transmissionx/tasks/settings/main.yml index e5862594a..bb1b6453d 100644 --- a/roles/transmissionx/tasks/settings/main.yml +++ b/roles/transmissionx/tasks/settings/main.yml @@ -34,4 +34,4 @@ - name: Settings | Start container docker_container: name: transmission{{ rolename }} - state: started \ No newline at end of file + state: started diff --git a/roles/transmissionx/tasks/settings/static.yml b/roles/transmissionx/tasks/settings/static.yml index b0a439eb9..1f02d31d1 100644 --- a/roles/transmissionx/tasks/settings/static.yml +++ b/roles/transmissionx/tasks/settings/static.yml @@ -32,7 +32,7 @@ lineinfile: path: "/opt/transmission{{ rolename }}/settings.json" regexp: '^\s*\"download\-dir\"\:.*' - line: ' "download-dir": "/downloads/torrents/transmission{{ rolename }}/completed",' + line: ' "download-dir": "/downloads/torrents/transmission{{ rolename }}/complete",' state: present # Change default incomplete directory diff --git a/roles/transmissionx/tasks/template.yml b/roles/transmissionx/tasks/template.yml index 426f27d4a..5b89ae6b6 100644 --- a/roles/transmissionx/tasks/template.yml +++ b/roles/transmissionx/tasks/template.yml @@ -90,7 +90,6 @@ vars: rolename: "{{ role }}" roleport: "{{ 9091 + index }}" - with_items: "{{ transmissionx.roles }}" loop_control: loop_var: role index_var: index From 190671803eefba41add1b498ac50574a86be24b9 Mon Sep 17 00:00:00 2001 From: salty Date: Tue, 20 Oct 2020 00:28:30 +0200 Subject: [PATCH 18/19] TransmissionX: Remove port index. --- roles/transmissionx/tasks/main.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/roles/transmissionx/tasks/main.yml b/roles/transmissionx/tasks/main.yml index 401d7b3b1..0eca61ee5 100644 --- a/roles/transmissionx/tasks/main.yml +++ b/roles/transmissionx/tasks/main.yml @@ -28,8 +28,6 @@ include_tasks: template.yml vars: rolename: "{{ role }}" - roleport: "{{ 9091 + index }}" with_items: "{{ transmissionx.roles }}" loop_control: loop_var: role - index_var: index From cc6ad68090001a53e1b6f0244e7f6d0927b1a34b Mon Sep 17 00:00:00 2001 From: salty Date: Tue, 20 Oct 2020 00:36:39 +0200 Subject: [PATCH 19/19] TransmissionX: Cleanup template.yml --- roles/transmissionx/tasks/template.yml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/roles/transmissionx/tasks/template.yml b/roles/transmissionx/tasks/template.yml index 5b89ae6b6..0b4290935 100644 --- a/roles/transmissionx/tasks/template.yml +++ b/roles/transmissionx/tasks/template.yml @@ -11,7 +11,7 @@ --- - name: "Install named transmission role" debug: - msg: "Installing {{ rolename }} using port {{ roleport }}" + msg: "Installing {{ rolename }}" - name: "Set DNS Record on CloudFlare" include_role: @@ -33,7 +33,6 @@ - "{{ downloads.torrents }}/transmission{{ rolename }}/complete" - "{{ downloads.torrents }}/transmission{{ rolename }}/incomplete" - "{{ downloads.torrents }}/transmission{{ rolename }}/watch" - - /opt/transmission{{ rolename }}/ when: (torrents_downloads_path is defined)|default(false) - name: Check if settings.json exists @@ -45,18 +44,13 @@ set_fact: default_volumes: - "/mnt:/mnt" - - "/opt/transmission{{ rolename }}:/opt/transmission{{ rolename }}" - "/opt/transmission{{ rolename }}:/config" - - "/mnt/local/downloads/:/downloads" - - "/mnt/local/downloads/torrents/transmission{{ rolename }}/watch:/watch" - name: Create and start container docker_container: name: "transmission{{ rolename }}" image: "linuxserver/transmission" pull: yes - published_ports: - - "127.0.0.1:{{ roleport }}:9091" env: TZ: "{{ tz }}" PUID: "{{ uid }}" @@ -66,12 +60,9 @@ LETSENCRYPT_HOST: "transmission{{ rolename }}.{{ user.domain }}" LETSENCRYPT_EMAIL: "{{ user.email }}" UMASK_SET: "002" - TRANSMISSION_HOME: "/opt/transmission{{ rolename }}" TRANSMISSION_WEB_HOME: "/transmission-web-control/" - TRANSMISSION_RPC_AUTHENTICATION_REQUIRED: "true" USER: "{{ user.name }}" PASS: "{{ user.pass }}" - TRANSMISSION_RPC_WHITELIST_ENABLED: "false" volumes: "{{ default_volumes + torrents_downloads_path|default([]) }}" labels: @@ -89,8 +80,6 @@ include_tasks: "settings/main.yml" vars: rolename: "{{ role }}" - roleport: "{{ 9091 + index }}" loop_control: loop_var: role - index_var: index when: (not continuous_integration)