From 4202795f06aa0353a1797925908fe1ccc7590191 Mon Sep 17 00:00:00 2001 From: h1f0x Date: Sun, 24 Mar 2019 16:21:52 +0100 Subject: [PATCH] rTorrent + ruTorrent integrated OpenVPN Hi all, As promised i created a another openvpn container, this time: - Docker container for "rTorrent (with ruTorrent) OpenVPN integrated" As the name may says it already this App offers the following features: Starting and maintaining active OpenVPN connection of your choice (capable of User/Pass/Cert authentication) Starts rTorrent Service + ruTorrent with autodl-irssi All configuration files can be edited an accessed from outside the docker container on the usual /opt/appdata/rflood-openvpn/ path. A detailed Guide and instruction can be found at: Github: https://github.com/h1f0x/rtorrent-rutorrent-openvpn Docker Hub: https://hub.docker.com/r/h1f0x/rtorrent-rutorrent-openvpn The app is already in the repository for testing. You can install it with the normal procedures. - choose: rutorrent-openvpn Short Usage: Install the app modify the VPN configuration to your needs wait about 1-2 min till the service is restarted, you can verify by the "my-external-ip.txt" in /opt/appdata/rutorrent-openvpn/ access your page and login with rtorrent : rtorrent Enjoy All config changes and from https://pgblitz.com/threads/rtorrent-floodui-openvpn-integrated.4156/ are built in already: - Added Sonarr support. Modification at the nginx.conf was needed. You can configure Sonarr like this: Name: rutorrent-openvpn Enable: Yes Host: rutorrent-openvpn Port: 8080 Username & Password: empty - Downloads will be copied to /mnt/downloads/rflood-openvpn, the original files will remain at /mnt/incomplete/rflood-openvpn to proceed seeding. (Info: Once the downloads hit /mn/downloads/rflood-openvpn/ they get moved to /mnt/move/rflood-openvpn -> /mnt/unionfs/rflood-openvpn - Sonarr needs to monior this path.) - force a re-hashing after the files get copied - without it bugged sometimes. - added `log-append /config/vpn/openvpn.log` to the client.conf for logging of vpn - Downloads which are tagged for example with "tv" will be copied once their completed to /mnt/downloads/rflood-openvpn/tv - Downloads which have no tag will be copied on default to /mnt/downloads/rflood-openvpn/unsorted Feedback is welcome and needed! Thats it for me regarding app-development. I will try to maintain my 4 released apps for now :) Cheers and Enjoy H1f0x --- apps/rutorrent-openvpn.yml | 78 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 apps/rutorrent-openvpn.yml diff --git a/apps/rutorrent-openvpn.yml b/apps/rutorrent-openvpn.yml new file mode 100644 index 0000000..9fd1766 --- /dev/null +++ b/apps/rutorrent-openvpn.yml @@ -0,0 +1,78 @@ +#!/bin/bash +# +# Title: rTorrent + ruTorrent integrated OpenVPN +# Author(s): h1f0x +# URL: https://github.com/h1f0x/rtorrent-flood-openvpn +# GNU: General Public License v3.0 +################################################################################ +--- +- hosts: localhost + gather_facts: false + tasks: + # FACTS ####################################################################### + + - name: 'Set Known Facts' + set_fact: + pgrole: 'rutorrent-openvpn' + intport: '80' + extport: '5897' + image: 'h1f0x/rtorrent-rutorrent-openvpn' + + # CORE (MANDATORY) ############################################################ + - name: 'Including cron job' + include_tasks: '/opt/communityapps/apps/_core.yml' + + - name: 'Including plugins' + include_tasks: '/opt/communityapps/apps/_plugins.yml' + + - name: 'Including folders' + include_tasks: '/opt/communityapps/apps/_downloaders.yml' + + - name: 'Ini Check' + stat: + path: /opt/appdata/{{pgrole}}/core.conf + register: inicheck + + # LABELS ###################################################################### + - name: 'Adding Traefik' + set_fact: + pg_labels: + traefik.enable: 'true' + traefik.port: '{{intport}}' + traefik.frontend.auth.forward.address: '{{gauth}}' + traefik.frontend.rule: 'Host:{{pgrole}}.{{domain.stdout}},{{tldset}}' + + - name: 'Setting PG Volumes' + set_fact: + pg_volumes: + - '/opt/appdata/{{pgrole}}:/config' + - '{{path.stdout}}:{{path.stdout}}' + - '/mnt/unionfs:/unionfs' + - '/mnt/downloads/{{pgrole}}:/output/complete' + - '/mnt/incomplete/{{pgrole}}:/output/incomplete' + - '/etc/localtime:/etc/localtime:ro' + + - name: 'Setting PG ENV' + set_fact: + pg_env: + UID: '1000' + GID: '1000' + + # MAIN DEPLOYMENT ############################################################# + - name: 'Deploying {{pgrole}}' + docker_container: + name: '{{pgrole}}' + image: '{{image}}' + pull: yes + published_ports: + - '{{ports.stdout}}{{extport}}:{{intport}}' + volumes: '{{pg_volumes}}' + env: '{{pg_env}}' + restart_policy: unless-stopped + networks: + - name: plexguide + aliases: + - '{{pgrole}}' + privileged: yes + state: started + labels: '{{pg_labels}}'