Rebase to edge, remove 3rd party UIs.

This commit is contained in:
TheSpad
2023-02-08 15:02:21 +00:00
parent 9a3f840c8b
commit 50bad919f5
11 changed files with 91 additions and 166 deletions

View File

@@ -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 ****"

View File

@@ -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 && \

View File

@@ -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 && \

View File

@@ -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 && \

4
Jenkinsfile vendored
View File

@@ -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'

View File

@@ -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.

View File

@@ -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'

View File

@@ -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." }

39
root/defaults/index.html Normal file
View File

@@ -0,0 +1,39 @@
<html>
<head>
<title>Upgrade Required!</title>
<style>
body{
font-family: Helvetica, Arial, sans-serif;
}
.message{
width:440px;
padding:20px 40px;
margin:0 auto;
background-color:#f9f9f9;
border:1px solid #ddd;
color: #1e3d62;
}
center{
margin:40px 0;
}
h1{
font-size: 18px;
line-height: 26px;
}
p{
font-size: 12px;
}
a{
color: rgb(207, 48, 139);
}
</style>
</head>
<body>
<div class="message">
<h1>Changes Required!</h1>
<p>This image no longer bundles 3rd party Transmission UI packages.</p>
<p>You will need to either remove the <strong>TRANSMISSION_WEB_HOME</strong> environment variable from your container or source a UI package yourself and update the path to match</p>
<p>We would advise you to use subfolders under <strong>/config</strong> to store your UI packages so that they survive upgrades</p>
</div>
</body>
</html>

View File

@@ -41,6 +41,10 @@ if [[ -n "${PEERPORT}" ]]; then
sed -i '/peer-port-random-on-start/c\ "peer-port-random-on-start": false,' /config/settings.json
fi
# Handle old theme locations
mkdir -p {/transmissionic,/combustion-release,/flood-for-transmission,/kettu,/transmission-web-control,/transmissionic}
echo /transmissionic /combustion-release /flood-for-transmission /kettu /transmission-web-control | xargs -n1 ln -s /defaults/index.html
# permissions
lsiown abc:abc \
/config/settings.json \

View File

@@ -1,4 +1,5 @@
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
pid=$(pidof transmission-daemon)