Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
68fea23
fire change event for input
Oct 18, 2024
cdf271c
fire change event for input
Oct 18, 2024
5e2fbc9
Merge remote-tracking branch 'origin/master'
Oct 19, 2024
407d75f
env configuration
Oct 19, 2024
714cc80
Merge branch 'Novik:master' into master
nelu Oct 23, 2024
a3f9072
trigger change for all user interaction on input
Oct 23, 2024
9d26675
Merge branch 'Novik:master' into master
nelu Oct 23, 2024
7ea23ab
Merge remote-tracking branch 'origin/master' into dir_input_change
Oct 23, 2024
ac8f28d
Merge branch 'dir_input_change'
Oct 23, 2024
9daa6af
Merge remote-tracking branch 'origin-nelu/master'
Oct 23, 2024
78f3b77
Merge branch 'Novik:master' into master
nelu Oct 24, 2024
7b9eb92
Merge remote-tracking branch 'origin/master'
Oct 24, 2024
b021bf3
Merge branch 'Novik:master' into master
nelu Nov 2, 2024
b20b062
Merge remote-tracking branch 'origin/master'
Nov 2, 2024
91f8080
Merge remote-tracking branch 'origin/master'
Nov 3, 2024
a6e160c
Merge remote-tracking branch 'origin/master'
Nov 15, 2024
4144bfd
more env config
Nov 15, 2024
543d350
Merge remote-tracking branch 'origin-nelu/master'
Nov 15, 2024
1f77790
RU_ prefix env config
Nov 15, 2024
ce7c5f3
RU_ prefix env config
Nov 15, 2024
7244eb2
Merge remote-tracking branch 'origin/master'
Nov 16, 2024
ad076a5
Merge remote-tracking branch 'origin/master'
Nov 18, 2024
b3c41c4
Merge remote-tracking branch 'origin/master'
Nov 19, 2024
1e7a072
Merge remote-tracking branch 'origin/master'
Nov 26, 2024
e7a7851
Merge remote-tracking branch 'origin/master'
Dec 15, 2024
313ca98
Merge remote-tracking branch 'origin/master'
Dec 17, 2024
c783508
Merge remote-tracking branch 'origin/master'
Jan 3, 2025
de860c3
Merge remote-tracking branch 'origin/master'
Jan 9, 2025
1029e8a
Merge pull request #2891 from Novik/develop
stickz Apr 25, 2025
5e44515
Adding Stopped state (#2893)
ranirahn Apr 26, 2025
ba37e05
Fix for broken RSS feeds break the rutorrent. (#2894)
ranirahn Apr 26, 2025
73479c4
Fix white border in dark themes (#2898)
drrako Apr 27, 2025
c1a573d
Bump versions for 5.2.1
stickz Apr 27, 2025
04ccb4a
Fix white border below the nav bar (#2901)
drrako Apr 28, 2025
dce4541
Update "State" categories to match "Status" column (#2899)
gashtal Apr 28, 2025
cc07f10
Bump versions for 5.2.2
stickz Apr 28, 2025
3e029f7
Remove invalid API 11 command mappings, fixes #2909 (#2910)
rozhuk-im May 3, 2025
0ab0bb2
Bump versions for v5.2.3
stickz May 3, 2025
193bd54
Remove "charset=UTF-8" from content type for HTTP post request to RPC…
rozhuk-im May 3, 2025
6701832
Add text/xml content type to xmlrpc request header
stickz May 3, 2025
04a2603
Bump versions for v5.2.4
stickz May 3, 2025
3b60a58
Merge remote-tracking branch 'origin/master'
May 7, 2025
d62e447
Docker image (#1)
nelu May 8, 2025
7fdbc2d
Merge remote-tracking branch 'origin-nelu/master'
May 8, 2025
453b890
env config
May 8, 2025
711ab68
env config
May 8, 2025
542e2a4
update buildkit crossplatform for arm64
May 8, 2025
a49742a
escape config
May 8, 2025
0a8fd42
publish to dockerhub and github image registries
May 8, 2025
4d3c080
add dockerignore
May 8, 2025
a7a405e
ghcr.io images
May 8, 2025
566d74d
ghcr.io corrected tags
May 9, 2025
ff8cb90
Merge branch 'develop' into develop-docker
nelu May 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
.idea
.git
.github
node_modules
Dockerfile*
70 changes: 70 additions & 0 deletions .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Multiarch Docker Image Build

on:
release:
types: [published]
# push:
# branches: [ master ]
# paths:
# - 'src/build/**'
# pull_request:
# branches: [ master ]
# paths:
# - './.env'

env:
BASE_IMAGE: unzel/rutorrent:builder-base
BUILD_PLATFORMS: linux/amd64,linux/386,linux/arm64,linux/arm/v7
TARGET_IMAGE: unzel/rutorrent
GITHUB_IMAGE: ghcr.io/${{ github.repository_owner }}/rutorrent


jobs:
build:
name: Build docker images
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Extract version from release tag
shell: bash
run: |
version="${{ github.event.release.tag_name }}"
clean_version="${version#v}" # Strip leading 'v' if present
echo "clean_version=$clean_version" >> "$GITHUB_ENV"
# setup Docker buildx action
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
install: true
driver: docker-container
buildkitd-flags: --allow-insecure-entitlement network.host
- name: Log in to GitHub Container Registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build & Push base image if needed
run: |
if docker pull "$BASE_IMAGE" > /dev/null 2>&1; then
echo "Base image found, using cache."
echo "build_base=false" >> "$GITHUB_ENV"
else
echo "Base image not found, will build it."
echo "build_base=true" >> "$GITHUB_ENV"
docker buildx build --platform=${{ env.BUILD_PLATFORMS }} --target osbuild --push --tag "$BASE_IMAGE" .
fi

- name: Build & push the Docker images
run: |
docker buildx build --platform=${{ env.BUILD_PLATFORMS }} --target rutorrent_src --push \
--tag "${{ env.TARGET_IMAGE }}:latest" \
--tag "${{ env.TARGET_IMAGE }}:${{ env.clean_version }}" \
--tag "${{ env.GITHUB_IMAGE }}:latest" \
--tag "${{ env.GITHUB_IMAGE }}:${{ env.clean_version }}" \
.

89 changes: 89 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
############################################################
# Dockerfile to build ruTorrent and plugins
#
############################################################

ARG ARCH
ARG PHP_VER=8.3-apache
ARG RUTORRENT_VER=master

FROM ${ARCH}php:${PHP_VER} AS osbuild
ARG TARGETPLATFORM
ARG UID=1000
ARG GID=1000

ENV APP_HOME=/usr/src/app

RUN sed -i 's/^Components: main$/& contrib non-free/' /etc/apt/sources.list.d/debian.sources \
&& apt update && apt install --no-install-recommends -y sudo gosu bash unzip g++ make file re2c autoconf openssl libssl-dev libevent-dev \
rtorrent mediainfo \
gzip p7zip p7zip-full p7zip-rar \
ffmpeg sox python3-pip \
&& pip install --no-cache-dir --break-system-packages pipx \
&& pipx ensurepath

RUN docker-php-ext-install sockets pcntl \
&& docker-php-source delete \
&& groupadd -g ${GID} runuser && useradd -u ${UID} -g ${GID} -m runuser \
&& usermod -a -G www-data runuser && usermod -a -G ${GID} www-data \
&& update-alternatives --install /usr/bin/python python /usr/bin/python3 1 \
&& pip install --break-system-packages cloudscraper \
&& apt remove -y g++ make re2c autoconf libssl-dev libevent-dev \
&& apt autoremove -y --purge \
&& rm -rf /var/www/html \
# && ln -s $APP_HOME /var/www/html \
&& ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load \
&& ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled/proxy.load \
&& ln -s /etc/apache2/mods-available/remoteip.load /etc/apache2/mods-enabled/remoteip.load \
&& apt-get clean -y \
&& rm -rf /tmp/* \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /usr/src/php.tar.xz

#COPY vhost.conf /etc/apache2/sites-enabled/000-default.conf

RUN echo "${TARGETPLATFORM}" | grep -q "arm" \
|| { \
BUILDPLATFORM_SHORT=$(echo "${TARGETPLATFORM}" | grep -q "64" && echo "x64" || echo "x86"); \
curl -L "https://github.com/TheGoblinHero/dumptorrent/releases/download/v1.3/dumptorrent_linux_amd64.tar.gz" \
| tar -xzf - -C "/usr/bin"; \
} && exit 0


FROM ${ARCH}unzel/rutorrent:builder-base AS rutorrent_src
LABEL org.opencontainers.image.authors="hwk <nelu@github.com>"


ARG STORAGE_DIR=/data
ARG UID=1000
ARG GID=1000

ENV PATH="$PATH:$APP_HOME"

ENV RU_LOG_FILE=${STORAGE_DIR}/logs/rutorrent.log
ENV RU_TOP_DIR=${STORAGE_DIR}/downloads/
ENV RU_PROFILE_PATH=${STORAGE_DIR}/share

WORKDIR $APP_HOME

COPY --chown=www-data:www-data ./ $APP_HOME

RUN cat <<EOF > /home/runuser/.rtorrent.rc
directory = ${RU_TOP_DIR}
session = ${STORAGE_DIR}/.session
port_range = 55951-55952
port_random = no
check_hash = yes
encryption = allow_incoming,enable_retry,prefer_plaintext
scgi_port = 0.0.0.0:5000
EOF

RUN mkdir -p "$RU_TOP_DIR" "$STORAGE_DIR/.session" \
&& chown -R ${UID}:${GID} "$STORAGE_DIR" /home/runuser/.rtorrent.rc \
&& chmod 775 -R "$APP_HOME" \
&& chown -R www-data:www-data "$APP_HOME" \
&& rm -rf /var/www/html && ln -s "$APP_HOME" "/var/www/html"

STOPSIGNAL TERM

VOLUME ["$STORAGE_DIR", "/var/www/html"]
3 changes: 1 addition & 2 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
<link rel="icon" type="image/png" href="./images/favicon-16x16.png" sizes="16x16" />
<meta name="msapplication-TileColor" content="#FFFFFF" />
<meta name="msapplication-TileImage" content="./images/mstile-144x144.png" />

<link href="./css/bootstrap.min.css?v=530" rel="stylesheet" type="text/css" />
<link href="./css/style.css?v=530" rel="stylesheet" type="text/css" />
<link href="./css/stable.css?v=530" rel="stylesheet" type="text/css" />
Expand Down Expand Up @@ -56,7 +55,6 @@
}
});
</script>

<script type="module" src="./js/backgroundtask.js?v=530"></script>
<script type="module" src="./js/category-list.js?v=530"></script>
<script type="module" src="./js/panel.js?v=530"></script>
Expand Down Expand Up @@ -303,6 +301,7 @@ <h4 class="offcanvas-title" id="offcanvas-sidepanel-label"></h4>
<div class="graph_tab_legend"></div>
<div id="dialog-container"></div>
<div id="dir-container"></div>

<script type="text/javascript" src="./js/bootstrap.bundle.min.js?v=530"></script>
</body>
</html>
2 changes: 2 additions & 0 deletions js/webui.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
*/

var theWebUI = {

version: "5.3.0",

tables: {
trt: {
obj: new dxSTable(),
Expand Down
2 changes: 2 additions & 0 deletions lang/langs.js
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,9 @@ function loadUILang(onLoadFunc)
translateDOM();
}
};

langScript.src = `./lang/${lang}.js?v=530`;

document.head.appendChild(langScript);
}

Expand Down