diff --git a/Dockerfile b/Dockerfile index 6f2b0652f..a88f0eea1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,7 +15,7 @@ RUN apt-get update \ && add-apt-repository ppa:transmissionbt/ppa \ && apt-get update \ && apt-get install -y transmission-cli transmission-common transmission-daemon \ - && apt-get install -y openvpn curl rar unrar zip unzip \ + && apt-get install -y openvpn curl rar unrar zip unzip wget \ && curl -sLO https://github.com/Yelp/dumb-init/releases/download/v1.0.1/dumb-init_1.0.1_amd64.deb \ && dpkg -i dumb-init_*.deb \ && rm -rf dumb-init_*.deb \ diff --git a/README.md b/README.md index b55d072e7..8218afd29 100644 --- a/README.md +++ b/README.md @@ -114,7 +114,7 @@ To use this env file, use the following to run the docker image: $ docker run --privileged -d \ -v /your/storage/path/:/data \ -v /etc/localtime:/etc/localtime:ro \ - -env-file /your/docker/env/file \ + --env-file /your/docker/env/file \ -p 9091:9091 \ haugene/transmission-openvpn ``` diff --git a/docker-compose-armhf.yml b/docker-compose-armhf.yml index c22b847b0..8580b7f45 100644 --- a/docker-compose-armhf.yml +++ b/docker-compose-armhf.yml @@ -1,11 +1,14 @@ -transmission: +version: '2' + +services: + transmission: build: - context: . - dockerfile: Dockerfile.armhf + context: . + dockerfile: Dockerfile.armhf privileged: true restart: always ports: - - 9091:9091 + - "9091:9091" dns: - 8.8.8.8 - 8.8.4.4 @@ -13,17 +16,17 @@ transmission: - /etc/localtime:/etc/localtime:ro - /your/storage/path/:/data environment: - OPENVPN_PROVIDER: PIA - OPENVPN_USERNAME: username - OPENVPN_PASSWORD: password - OPENVPN_OPTS: "--inactive 3600 --ping 10 --ping-exit 60" - LOCAL_NETWORK: 192.168.0.0/24 + - OPENVPN_PROVIDER=PIA + - OPENVPN_USERNAME=username + - OPENVPN_PASSWORD=password + - OPENVPN_OPTS="--inactive 3600 --ping 10 --ping-exit 60" + - LOCAL_NETWORK=192.168.0.0/24 -proxy: + proxy: build: ./proxy/Dockerfile.armhf links: - transmission ports: - - 8080:8080 + - "8080:8080" volumes: - /etc/localtime:/etc/localtime:ro diff --git a/docker-compose.yml b/docker-compose.yml index bf55b9658..a0d169ab0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,9 +1,11 @@ -transmission: +version: '2' +services: + transmission: image: haugene/transmission-openvpn privileged: true restart: always ports: - - 9091:9091 + - "9091:9091" dns: - 8.8.8.8 - 8.8.4.4 @@ -11,13 +13,13 @@ transmission: - /etc/localtime:/etc/localtime:ro - /your/storage/path/:/data environment: - OPENVPN_PROVIDER: PIA - OPENVPN_USERNAME: username - OPENVPN_PASSWORD: password - OPENVPN_OPTS: "--inactive 3600 --ping 10 --ping-exit 60" - LOCAL_NETWORK: 192.168.0.0/24 + - OPENVPN_PROVIDER=PIA + - OPENVPN_USERNAME=username + - OPENVPN_PASSWORD=password + - OPENVPN_OPTS="--inactive 3600 --ping 10 --ping-exit 60" + - LOCAL_NETWORK=192.168.0.0/24 -proxy: + proxy: image: haugene/transmission-openvpn-proxy links: - transmission diff --git a/transmission/updatePort.sh b/transmission/updatePort.sh index d56e76fb0..1af6b15e3 100755 --- a/transmission/updatePort.sh +++ b/transmission/updatePort.sh @@ -31,10 +31,28 @@ if [ -z ${pia_client_id} ]; then fi # Get the port -pia_response=$(curl -d "user=$pia_username&pass=$pia_passwd&client_id=$pia_client_id&local_ip=$local_vpn_ip" $port_assignment_url) +pia_response=$(curl -s -f -d "user=$pia_username&pass=$pia_passwd&client_id=$pia_client_id&local_ip=$local_vpn_ip" $port_assignment_url) +# Check for curl error (curl will fail on HTTP errors with -f flag) +ret=$? +if [ $ret -ne 0 ]; then + echo "curl encountered an error looking up new port: $ret" +fi + +# Check for errors in PIA response +error=$(echo $pia_response | grep -oE "\"error\".*\"") +if [ ! -z "$error" ]; then + echo "PIA returned an error: $error" + exit +fi + +# Get new port, check if empty new_port=$(echo $pia_response | grep -oE "[0-9]+") -echo "Got new port $new_port from pia" +if [ -z "$new_port" ]; then + echo "Could not find new port from PIA" + exit +fi +echo "Got new port $new_port from PIA" # # Now, set port in Transmission @@ -61,4 +79,3 @@ if [ "$new_port" != "$transmission_peer_port" ] else echo "No action needed, port hasn't changed" fi -