diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml index 7f0e5f8..6f6c5fe 100755 --- a/.github/workflows/external_trigger.yml +++ b/.github/workflows/external_trigger.yml @@ -18,7 +18,7 @@ jobs: fi echo "**** External trigger running off of master branch. To disable this trigger, set a Github secret named \"PAUSE_EXTERNAL_TRIGGER_TRANSMISSION_MASTER\". ****" echo "**** Retrieving external version ****" - EXT_RELEASE=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/v3.17/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ + EXT_RELEASE=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ && awk '/^P:'"transmission-daemon"'$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://') if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then echo "**** Can't retrieve external version, exiting ****" diff --git a/Dockerfile b/Dockerfile index 2d76376..5d3c25c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM ghcr.io/linuxserver/baseimage-alpine:3.17 +FROM ghcr.io/linuxserver/baseimage-alpine:edge ARG UNRAR_VERSION=6.1.7 ARG BUILD_DATE @@ -12,17 +12,12 @@ LABEL maintainer="aptalca" RUN \ echo "**** install build packages ****" && \ apk add --no-cache --upgrade --virtual=build-dependencies \ - make \ - g++ \ - gcc && \ + build-base && \ echo "**** install packages ****" && \ - apk add --no-cache \ + apk add --no-cache --upgrade \ findutils \ - openssl \ p7zip \ - python3 \ - transmission-cli \ - transmission-daemon && \ + python3 && \ echo "**** install unrar from source ****" && \ mkdir /tmp/unrar && \ curl -o \ @@ -34,48 +29,14 @@ RUN \ cd /tmp/unrar && \ make && \ install -v -m755 unrar /usr/local/bin && \ - echo "**** install third party themes ****" && \ - TRANSMISSIONIC_VERSION=$(curl -s "https://api.github.com/repos/6c65726f79/Transmissionic/releases/latest" | jq -r .tag_name) && \ - curl -o \ - /tmp/transmissionic.zip -L \ - "https://github.com/6c65726f79/Transmissionic/releases/download/${TRANSMISSIONIC_VERSION}/Transmissionic-webui-${TRANSMISSIONIC_VERSION}.zip" && \ - unzip \ - /tmp/transmissionic.zip -d \ - /tmp && \ - mv /tmp/web /transmissionic && \ - curl -o \ - /tmp/combustion.zip -L \ - "https://github.com/Secretmapper/combustion/archive/release.zip" && \ - unzip \ - /tmp/combustion.zip -d \ - / && \ - mkdir -p /tmp/twctemp && \ - TWCVERSION=$(curl -s "https://api.github.com/repos/ronggang/transmission-web-control/releases/latest" | jq -r .tag_name) && \ - curl -o \ - /tmp/twc.tar.gz -L \ - "https://github.com/ronggang/transmission-web-control/archive/${TWCVERSION}.tar.gz" && \ - tar xf \ - /tmp/twc.tar.gz -C \ - /tmp/twctemp --strip-components=1 && \ - mv /tmp/twctemp/src /transmission-web-control && \ - # Enables the original UI button in transmission-web-control - ln -s /usr/share/transmission/web/style /transmission-web-control && \ - ln -s /usr/share/transmission/web/images /transmission-web-control && \ - ln -s /usr/share/transmission/web/javascript /transmission-web-control && \ - ln -s /usr/share/transmission/web/index.html /transmission-web-control/index.original.html && \ - mkdir -p /kettu && \ - curl -o \ - /tmp/kettu.tar.gz -L \ - "https://github.com/endor/kettu/archive/master.tar.gz" && \ - tar xf \ - /tmp/kettu.tar.gz -C \ - /kettu --strip-components=1 && \ - curl -o \ - /tmp/flood-for-transmission.tar.gz -L \ - "https://github.com/johman10/flood-for-transmission/releases/download/latest/flood-for-transmission.tar.gz" && \ - tar xf \ - /tmp/flood-for-transmission.tar.gz -C \ - / && \ + echo "**** install transmission ****" && \ + if [ -z ${TRANSMISSION_VERSION+x} ]; then \ + TRANSMISSION_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ + && awk '/^P:transmission$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \ + fi && \ + apk add --no-cache --upgrade \ + transmission-cli==${TRANSMISSION_VERSION} \ + transmission-daemon==${TRANSMISSION_VERSION} && \ echo "**** cleanup ****" && \ apk del --purge \ build-dependencies && \ diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64 index f7b60f7..4fe0154 100644 --- a/Dockerfile.aarch64 +++ b/Dockerfile.aarch64 @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-3.17 +FROM ghcr.io/linuxserver/baseimage-alpine:arm64v8-edge ARG UNRAR_VERSION=6.1.7 ARG BUILD_DATE @@ -12,17 +12,12 @@ LABEL maintainer="aptalca" RUN \ echo "**** install build packages ****" && \ apk add --no-cache --upgrade --virtual=build-dependencies \ - make \ - g++ \ - gcc && \ + build-base && \ echo "**** install packages ****" && \ - apk add --no-cache \ + apk add --no-cache --upgrade \ findutils \ - openssl \ p7zip \ - python3 \ - transmission-cli \ - transmission-daemon && \ + python3 && \ echo "**** install unrar from source ****" && \ mkdir /tmp/unrar && \ curl -o \ @@ -34,48 +29,14 @@ RUN \ cd /tmp/unrar && \ make && \ install -v -m755 unrar /usr/local/bin && \ - echo "**** install third party themes ****" && \ - TRANSMISSIONIC_VERSION=$(curl -s "https://api.github.com/repos/6c65726f79/Transmissionic/releases/latest" | jq -r .tag_name) && \ - curl -o \ - /tmp/transmissionic.zip -L \ - "https://github.com/6c65726f79/Transmissionic/releases/download/${TRANSMISSIONIC_VERSION}/Transmissionic-webui-${TRANSMISSIONIC_VERSION}.zip" && \ - unzip \ - /tmp/transmissionic.zip -d \ - /tmp && \ - mv /tmp/web /transmissionic && \ - curl -o \ - /tmp/combustion.zip -L \ - "https://github.com/Secretmapper/combustion/archive/release.zip" && \ - unzip \ - /tmp/combustion.zip -d \ - / && \ - mkdir -p /tmp/twctemp && \ - TWCVERSION=$(curl -s "https://api.github.com/repos/ronggang/transmission-web-control/releases/latest" | jq -r .tag_name) && \ - curl -o \ - /tmp/twc.tar.gz -L \ - "https://github.com/ronggang/transmission-web-control/archive/${TWCVERSION}.tar.gz" && \ - tar xf \ - /tmp/twc.tar.gz -C \ - /tmp/twctemp --strip-components=1 && \ - mv /tmp/twctemp/src /transmission-web-control && \ - # Enables the original UI button in transmission-web-control - ln -s /usr/share/transmission/web/style /transmission-web-control && \ - ln -s /usr/share/transmission/web/images /transmission-web-control && \ - ln -s /usr/share/transmission/web/javascript /transmission-web-control && \ - ln -s /usr/share/transmission/web/index.html /transmission-web-control/index.original.html && \ - mkdir -p /kettu && \ - curl -o \ - /tmp/kettu.tar.gz -L \ - "https://github.com/endor/kettu/archive/master.tar.gz" && \ - tar xf \ - /tmp/kettu.tar.gz -C \ - /kettu --strip-components=1 && \ - curl -o \ - /tmp/flood-for-transmission.tar.gz -L \ - "https://github.com/johman10/flood-for-transmission/releases/download/latest/flood-for-transmission.tar.gz" && \ - tar xf \ - /tmp/flood-for-transmission.tar.gz -C \ - / && \ + echo "**** install transmission ****" && \ + if [ -z ${TRANSMISSION_VERSION+x} ]; then \ + TRANSMISSION_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ + && awk '/^P:transmission$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \ + fi && \ + apk add --no-cache --upgrade \ + transmission-cli==${TRANSMISSION_VERSION} \ + transmission-daemon==${TRANSMISSION_VERSION} && \ echo "**** cleanup ****" && \ apk del --purge \ build-dependencies && \ diff --git a/Dockerfile.armhf b/Dockerfile.armhf index 0a1c9a2..cef10f4 100644 --- a/Dockerfile.armhf +++ b/Dockerfile.armhf @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-3.17 +FROM ghcr.io/linuxserver/baseimage-alpine:arm32v7-edge ARG UNRAR_VERSION=6.1.7 ARG BUILD_DATE @@ -12,17 +12,12 @@ LABEL maintainer="aptalca" RUN \ echo "**** install build packages ****" && \ apk add --no-cache --upgrade --virtual=build-dependencies \ - make \ - g++ \ - gcc && \ + build-base && \ echo "**** install packages ****" && \ - apk add --no-cache \ + apk add --no-cache --upgrade \ findutils \ - openssl \ p7zip \ - python3 \ - transmission-cli \ - transmission-daemon && \ + python3 && \ echo "**** install unrar from source ****" && \ mkdir /tmp/unrar && \ curl -o \ @@ -34,48 +29,14 @@ RUN \ cd /tmp/unrar && \ make && \ install -v -m755 unrar /usr/local/bin && \ - echo "**** install third party themes ****" && \ - TRANSMISSIONIC_VERSION=$(curl -s "https://api.github.com/repos/6c65726f79/Transmissionic/releases/latest" | jq -r .tag_name) && \ - curl -o \ - /tmp/transmissionic.zip -L \ - "https://github.com/6c65726f79/Transmissionic/releases/download/${TRANSMISSIONIC_VERSION}/Transmissionic-webui-${TRANSMISSIONIC_VERSION}.zip" && \ - unzip \ - /tmp/transmissionic.zip -d \ - /tmp && \ - mv /tmp/web /transmissionic && \ - curl -o \ - /tmp/combustion.zip -L \ - "https://github.com/Secretmapper/combustion/archive/release.zip" && \ - unzip \ - /tmp/combustion.zip -d \ - / && \ - mkdir -p /tmp/twctemp && \ - TWCVERSION=$(curl -s "https://api.github.com/repos/ronggang/transmission-web-control/releases/latest" | jq -r .tag_name) && \ - curl -o \ - /tmp/twc.tar.gz -L \ - "https://github.com/ronggang/transmission-web-control/archive/${TWCVERSION}.tar.gz" && \ - tar xf \ - /tmp/twc.tar.gz -C \ - /tmp/twctemp --strip-components=1 && \ - mv /tmp/twctemp/src /transmission-web-control && \ - # Enables the original UI button in transmission-web-control - ln -s /usr/share/transmission/web/style /transmission-web-control && \ - ln -s /usr/share/transmission/web/images /transmission-web-control && \ - ln -s /usr/share/transmission/web/javascript /transmission-web-control && \ - ln -s /usr/share/transmission/web/index.html /transmission-web-control/index.original.html && \ - mkdir -p /kettu && \ - curl -o \ - /tmp/kettu.tar.gz -L \ - "https://github.com/endor/kettu/archive/master.tar.gz" && \ - tar xf \ - /tmp/kettu.tar.gz -C \ - /kettu --strip-components=1 && \ - curl -o \ - /tmp/flood-for-transmission.tar.gz -L \ - "https://github.com/johman10/flood-for-transmission/releases/download/latest/flood-for-transmission.tar.gz" && \ - tar xf \ - /tmp/flood-for-transmission.tar.gz -C \ - / && \ + echo "**** install transmission ****" && \ + if [ -z ${TRANSMISSION_VERSION+x} ]; then \ + TRANSMISSION_VERSION=$(curl -sL "http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz" | tar -xz -C /tmp \ + && awk '/^P:transmission$/,/V:/' /tmp/APKINDEX | sed -n 2p | sed 's/^V://'); \ + fi && \ + apk add --no-cache --upgrade \ + transmission-cli==${TRANSMISSION_VERSION} \ + transmission-daemon==${TRANSMISSION_VERSION} && \ echo "**** cleanup ****" && \ apk del --purge \ build-dependencies && \ diff --git a/Jenkinsfile b/Jenkinsfile index dac7641..fd224e5 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -25,8 +25,8 @@ pipeline { DEV_DOCKERHUB_IMAGE = 'lsiodev/transmission' PR_DOCKERHUB_IMAGE = 'lspipepr/transmission' DIST_IMAGE = 'alpine' - DIST_TAG = '3.17' - DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/v3.17/community/' + DIST_TAG = 'edge' + DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/edge/community/' DIST_REPO_PACKAGES = 'transmission-daemon' MULTIARCH='true' CI='true' diff --git a/README.md b/README.md index 37be375..a519f3f 100644 --- a/README.md +++ b/README.md @@ -62,8 +62,6 @@ The architectures supported by this image are: Webui is on port 9091, the settings.json file in /config has extra settings not available in the webui. Stop the container before editing it or any changes won't be saved. -If you choose to use transmission-web-control as your default UI, just note that the origional Web UI will not be available to you despite the button being present. - ## Securing the webui with a username/password. Use the `USER` and `PASS` variables in docker run/create/compose to set authentication. Do not manually edit the `settings.json` to input user/pass, otherwise transmission cannot be stopped cleanly by the s6 supervisor. @@ -103,7 +101,7 @@ services: - PUID=1000 - PGID=1000 - TZ=Europe/London - - TRANSMISSION_WEB_HOME=/combustion-release/ #optional + - TRANSMISSION_WEB_HOME= #optional - USER=username #optional - PASS=password #optional - WHITELIST=iplist #optional @@ -128,7 +126,7 @@ docker run -d \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/London \ - -e TRANSMISSION_WEB_HOME=/combustion-release/ `#optional` \ + -e TRANSMISSION_WEB_HOME= `#optional` \ -e USER=username `#optional` \ -e PASS=password `#optional` \ -e WHITELIST=iplist `#optional` \ @@ -156,7 +154,7 @@ Container images are configured using parameters passed at runtime (such as thos | `-e PUID=1000` | for UserID - see below for explanation | | `-e PGID=1000` | for GroupID - see below for explanation | | `-e TZ=Europe/London` | Specify a timezone to use EG Europe/London. | -| `-e TRANSMISSION_WEB_HOME=/combustion-release/` | Specify an alternative UI options are [`/combustion-release/`](https://github.com/Secretmapper/combustion), [`/transmission-web-control/`](https://github.com/ronggang/transmission-web-control), [`/kettu/`](https://github.com/endor/kettu), [`/flood-for-transmission/`](https://github.com/johman10/flood-for-transmission), and [`/transmissionic/`](https://github.com/6c65726f79/Transmissionic). | +| `-e TRANSMISSION_WEB_HOME=` | Specify the path to an alternative UI folder. | | `-e USER=username` | Specify an optional username for the interface | | `-e PASS=password` | Specify an optional password for the interface | | `-e WHITELIST=iplist` | Specify an optional list of comma separated ip whitelist. Fills rpc-whitelist setting. | @@ -275,6 +273,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **08.02.23:** - Rebase to Alpine Edge to get access to most up to date builds of Transmission. Remove bundled 3rd party UI packages. * **05.01.23:** - Rebase to Alpine 3.17, restore GNU findutils package. * **02.11.22:** - Rebase to Alpine 3.16, migrate to s6v3. * **12.08.22:** - Bump unrar to 6.1.7. diff --git a/jenkins-vars.yml b/jenkins-vars.yml index 2632ca4..ac8f7cc 100644 --- a/jenkins-vars.yml +++ b/jenkins-vars.yml @@ -15,8 +15,8 @@ repo_vars: - DEV_DOCKERHUB_IMAGE = 'lsiodev/transmission' - PR_DOCKERHUB_IMAGE = 'lspipepr/transmission' - DIST_IMAGE = 'alpine' - - DIST_TAG = '3.17' - - DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/v3.17/community/' + - DIST_TAG = 'edge' + - DIST_REPO = 'http://dl-cdn.alpinelinux.org/alpine/edge/community/' - DIST_REPO_PACKAGES = 'transmission-daemon' - MULTIARCH='true' - CI='true' diff --git a/readme-vars.yml b/readme-vars.yml index dbdb024..4fda032 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -40,7 +40,7 @@ cap_add_param: false # optional container parameters opt_param_usage_include_env: true opt_param_env_vars: - - { env_var: "TRANSMISSION_WEB_HOME", env_value: "/combustion-release/", desc: "Specify an alternative UI options are [`/combustion-release/`](https://github.com/Secretmapper/combustion), [`/transmission-web-control/`](https://github.com/ronggang/transmission-web-control), [`/kettu/`](https://github.com/endor/kettu), [`/flood-for-transmission/`](https://github.com/johman10/flood-for-transmission), and [`/transmissionic/`](https://github.com/6c65726f79/Transmissionic)." } + - { env_var: "TRANSMISSION_WEB_HOME", env_value: "", desc: "Specify the path to an alternative UI folder." } - { env_var: "USER", env_value: "username", desc: "Specify an optional username for the interface" } - { env_var: "PASS", env_value: "password", desc: "Specify an optional password for the interface" } - { env_var: "WHITELIST", env_value: "iplist", desc: "Specify an optional list of comma separated ip whitelist. Fills rpc-whitelist setting."} @@ -57,8 +57,6 @@ app_setup_block_enabled: true app_setup_block: | Webui is on port 9091, the settings.json file in /config has extra settings not available in the webui. Stop the container before editing it or any changes won't be saved. - If you choose to use transmission-web-control as your default UI, just note that the origional Web UI will not be available to you despite the button being present. - ## Securing the webui with a username/password. Use the `USER` and `PASS` variables in docker run/create/compose to set authentication. Do not manually edit the `settings.json` to input user/pass, otherwise transmission cannot be stopped cleanly by the s6 supervisor. @@ -83,6 +81,7 @@ app_setup_block: | # changelog changelogs: + - { date: "08.02.23:", desc: "Rebase to Alpine Edge to get access to most up to date builds of Transmission. Remove bundled 3rd party UI packages." } - { date: "05.01.23:", desc: "Rebase to Alpine 3.17, restore GNU findutils package." } - { date: "02.11.22:", desc: "Rebase to Alpine 3.16, migrate to s6v3." } - { date: "12.08.22:", desc: "Bump unrar to 6.1.7." } diff --git a/root/defaults/index.html b/root/defaults/index.html new file mode 100644 index 0000000..0cf0a9b --- /dev/null +++ b/root/defaults/index.html @@ -0,0 +1,39 @@ + +
+